
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
Страницы: (31) « Первая ... 14 15 [16] 17 18 ... 30 31 ( Перейти к последнему сообщению ) |
Сообщ.
#226
,
|
|
|
Цитата best_lamer @ По САБЖу Идеального нет! И быть не может впринципе. Ибо идеальный должен учитывать все эти подходы а именно: 1) Процедурное программирование 2) Объектно-ориентированное программирование 3) Функциональное программирование 4) Логическое программирование т.е. такой язык говоря языком простым должен быть повернут и в сторону машины и в сторону человека одновременно! А это невозможно. Пока... ![]() ![]() ![]() полностью согласен Добавлено Цитата AndNot @ Лучше уж сделать язык, в котором изначально есть минимум. А если какая либо задача требует, к примеру, ООП, то достаточно подключить либу обеспечивающую эти функции. Если ООП не нужно, можно просто подключить просто процедурные функции, и тд. 10 раз повторяю, что в С++ так и сделано, если ты это отрицаешь, то значит полность в нем не разбираешься там есть минимум, можно использовать ООП, можно и не использовать, а пользоваться только процедурами любую прогу на С++ можно написать на ООП, а можно и процедурно, и еще, а же сказал - не знаешь, что такое i++ , так использую i = i + 1 а если ты говоришь о том, что там в чужом коде тяжело копаться, так на форте тоже придется разбираться в чужом словаре Добавлено ![]() Добавлено даааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа ![]() Добавлено Цитата AndNot @ Прибавь сюда возможность данных самим класть свое значение на стэк, самим контролировать диапозон и тд., и отпадет необходимость помнить их тип. представляешь на С++ классы оказывается делают совершенно тоже самое, и тип тоже не надо помнить ![]() |
Сообщ.
#227
,
|
|
|
Цитата AndNot @ Цитата Hryak @ Эта вероятность хорошо компенсируется опытом. Язык С++ очень простым назвать нельзя, он довольно труден для изучения. Верно, но ведь опытными не рождаются. Не рождаются, и чего? Всему надо учиться. Не будешь же ты утверждать, что если есть две книжки: "Освой L1 за D1 дней" и "Освой L2 за D2 дней", и D1 < D2, то язык L1 лучше языка L2? Напомню русскую пословицу: "Долго запрягаешь - быстро едешь" ![]() Цитата А для этого в нем не должно быть неоднозначностей. Каких неоднозначностей? Ты имеешь в виду сложности языка? Дык они в большинстве и проистекают от мощности C++. Нет данных сложностей - нет мощности. Цитата из-за усталости пишут I++ вместо ++I Ну, не более вероятно, чем напишут x+12 вместо x+21 Цитата , или пресловутая операция == ). "Не так страшен чёрт, как его малюют" © Пару раз за жизнь попался на этой операции, но верный компилятор всегда намекал, что я вероятно ошибаюсь. Цитата Цитата Hryak @ Цитата Ведь на асме вообще отсутствует контроль типов, но ошибок не больше чем на ЯВУ. Не больше? ![]() ![]() А ты попробуй, а потом говори ![]() Писал я на асме. Не очень много и не слишком большие проекты (до 2-3тыс строк). Но считаю утверждение, что код, в десятки раз больший, где всё нужно делать руками и постоянно смотреть по сторонам, чтобы не оступиться (самое страшное, что если оступишься, то можешь и не сразу заметить это), является не более error-phrone, чем компактный, избавленный от ненужных технических деталей - утопичным, имхо. Цитата ...и отсутствуют высокоуровневые средства выражения программистом мысли, что делает глупым выбор этого языка для более-менее серьезных проектов. Ассемблерные вставки для бОльшего быстродействия - еще куда ни шло, и то, при современном уровне развития оптимизирующих компляторов это нужно всё реже и реже.А в асме все предельно четко и однозначно. Цитата Чем не пример излишеств C/С++? А в чём излишество-то? В наличии operator++? Человек, который пишет (++i)++ - сам себе злобный Буратин. Еще раз - я согласен, что на C++ можно делать нечитаемый, склонный к ошибкам, код. Но никто не мешает делать всё наоборот. |
Сообщ.
#228
,
|
|
|
Цитата impik777 @ 10 раз повторяю, что в С++ так и сделано Ага, и мегатонный учебник в придачу ![]() Цитата impik777 @ печально, ничего не могу сказать А между тем с его подачи эта конструкция была узаконена стандартом, до этого о ней никто и не догадывался (хотя язык существовал несколько десятков лет!). Цитата Hryak @ Всему надо учиться. Вопрос только в том, сколько? Цитата Hryak @ Каких неоднозначностей? Ты имеешь в виду сложности языка? Дык они в большинстве и проистекают от мощности C++. Нет данных сложностей - нет мощности. А ты попробуй скормить компилятору сначала: ![]() ![]() int my,a,b,c; ... my += a * (b /= c); а потом вот это: ![]() ![]() my += (a * b) / c; и посмотри под отладчиком на полученный код. На новых компиляторах не пробовал, но старые вели себя "должным образом" ![]() Цитата Hryak @ Напомню русскую пословицу: "Долго запрягаешь - быстро едешь" А пока они запрягают, другим приходится глюки в прогах наблюдать. Цитата Hryak @ и отсутствуют высокоуровневые средства выражения программистом мысли Ты отстал от жизни ![]() Цитата Hryak @ что делает глупым выбор этого языка для более-менее серьезных проектов А что ты считаешь серьезным проектом? Цитата Hryak @ Ассемблерные вставки для бОльшего быстродействия - еще куда ни шло, и то, при современном уровне развития оптимизирующих компляторов это нужно всё реже и реже. Ты в дебаге на код то взгляни, прежде чем такое пороть. Им до человека "как до китая раком" © Народ. Хотя бы посмотри какие он тебе сгенерит битовые операции. Цитата Hryak @ Человек, который пишет (++i)++ - сам себе злобный Буратин. Самое печальное что не только себе, но и другим ![]() Цитата Hryak @ Еще раз - я согласен, что на C++ можно делать нечитаемый, склонный к ошибкам, код. Это везде можно, даже на паскале ![]() Цитата Hryak @ Но никто не мешает делать всё наоборот. Но до такого совершенства надо долго расти. А хотелось бы побыстрее. |
Сообщ.
#229
,
|
|
|
Опять же неправильна формулировка самого вопроса! "идеальный язык программирования, каким он должен быть?" Идеальный для кого? И идеальный с точки зрения программиста (удобство разработки) или с точки зрения машины (а точнее использования ее ресурсов)!? Потому как для удобства программистов создали уйму языков один краше другого. А для скорости работы дааавно существует ассемблер.
Компьютер/Компилятор/Интерпретатор - инструмент такой же как молоток, скальпель или межконтинентальная атомная баллистическая ракета. На текущем уровне развития нашей цивилизации еще не создан единый инструмент для всего. Т.е. хирург для проведения хирургической операции применяет скальпель. А рабочий если ему надо гвоздь забить возьмёт молоток. Возможно в далеком будущем и будет создан такой молоток которым хирург с превеликим удовольствием ампутирует пациенту опухоль... Но сейчас согласитесь это бредовая затея! И поэтому хорошо что есть ассемблер бейсик си паскаль и т.д. Чем больше разнообразие инструментов тем больше задачь под силу программисту. Возникает конкуренция и таким образом выигрывают все! И потом надо различать задачи и выбирать под них инструменты. ЗЫ: А раз уж говорить об идеальном языке программирования - так он существует! Всем срочно штудировать man sh, man bash ![]() |
Сообщ.
#230
,
|
|
|
Цитата best_lamer @ Опять же неправильна формулировка самого вопроса! "идеальный язык программирования, каким он должен быть?" Идеальный для кого? Тут на самом деле ведется самый настоящий холивар И начался он с двух фраз Цитата LuckLess @ wormball Напиши программу на форте которая прочитает текстовый файл "text1.txt", создаст "text2.txt" и запишет в него все слова но задом наперед. И тут уже началось не обсуждение идеального языка а битва Форт vs С++ ![]() Добавлено Цитата best_lamer @ Всем срочно штудировать man sh, man bash поясни пож, че это за зверь Добавлено Цитата AndNot @ Ты отстал от жизни Таких средств хватает. Это ты отстал от жизни, на асме если и пишут, то только дрова обычную прикладную прогу на асме не один здравомыслящий программист писать не будет почитай вот это Цитата Он считает, что какой-то язык/платформа/парадигма есть панацея от всех задач, даваемых заказчиком. Он компилирует код в ассемблерный листинг, сдабривает код вручную nop'ами, ассемблирует остальное вручную. Он считает, что стоит потратить эпоху на то, чтобы код запускался на платформах, о которых заказчик не имеет понятия. Например, на умных тостерах какие-нибудь. Он будет изголяться с ухищрениями, благодаря которым его программа станет быстрее на 3%, тратя на это месяцы. Когда ему скажут, что он не справился, он не поверит, потому что делал все по толстому фолианту бородатого всеми уважаемого дядьки. А дядька не мог насоветовать плохого. Добавлено Цитата AndNot @ Самое печальное что не только себе, но и другим обычно программист дает простой интерфейс а как он его реализовал - не твое дело !!! при плохих тестах его кода, он САМ должен копаться и исправлять, а не другой ![]() господи, это самый примитивный принцип работы в команде |
Сообщ.
#231
,
|
|
|
Судя по тем исходникам, которые я видел, дело обстоит как раз наоборот. Цитата Hryak @ VC++ 6.0 скомпилировала и выполнила Молодец она, что выполнила. А могла и винт форматнуть А ты думаешь, как format пишется? ![]() Цитата best_lamer @ Компьютер/Компилятор/Интерпретатор - инструмент такой же как молоток, скальпель или межконтинентальная атомная баллистическая ракета. На текущем уровне развития нашей цивилизации еще не создан единый инструмент для всего. У Броуди на эту тему очень хорошо написано: Цитата В то время как традиционные компиляторы претендуют на роль универсальных инструментальных средств, Форт-компилятор представляет собой набор отдельных простых инструментов и позволяет на их основе создавать дополнительный инструментарий. Что, на ваш взгляд, лучше: см. рисунок Прикреплённая картинка
![]() |
Сообщ.
#232
,
|
|
|
Цитата AndNot @ А ты попробуй скормить компилятору сначала: ![]() ![]() int my,a,b,c; ... my += a * (b /= c); а потом вот это: ![]() ![]() my += (a * b) / c; и посмотри под отладчиком на полученный код. И чего я там должен увидеть? То, что при делении целого на целое получается целое - это довольно логично и весьма эффективно. Впитывается в кровь в первые же недели обучения. Цитата А пока они запрягают, другим приходится глюки в прогах наблюдать. Кому другим? Программистам - коллегам? Дык, нефиг начинающим давать какие-то важные части писать. Если пользователям - то могут найти аналогичную программу, написанную более опытными. Цитата Цитата Hryak @ и отсутствуют высокоуровневые средства выражения программистом мысли Ты отстал от жизни ![]() Ну, расскажи, например, про возможности легкого использования статического и динамического полиморфизма в ассемблере. ![]() Цитата А что ты считаешь серьезным проектом? Странный вопрос. Ну, mspaint, например, wordpad. Клиент-серверные приложения с десятком-другим формочек для ведения какой-нить базы данных. Впрочем, их даже не назвать серьезными проектами на C++, а что насчёт ассеблера? Цитата Цитата Hryak @ Ассемблерные вставки для бОльшего быстродействия - еще куда ни шло, и то, при современном уровне развития оптимизирующих компляторов это нужно всё реже и реже. Ты в дебаге на код то взгляни, прежде чем такое пороть. Смотрел и немало, поверь. Во-первых, в дебаге вообще нельзя смотреть на оптимизацию, только в релизе. Во-вторых, если ты имел в виду другое, то покажи примерчик. Современные компиляторы очень хорошо раскладывают код по регистрам и наслышаны об особенностях процессоров, под которые они компилируют. Переплюнуть их человеку можно, конечно, но человек этот должен очень хорошо знать ассемблер и особенности конкретного процессора. Другое дело - что такая оптимизация обычно нужна крайне редко, а в прочих случаях глупо этим заниматься. Цитата Хотя бы посмотри какие он тебе сгенерит битовые операции. А чего там с битовыми операциями? Цитата Цитата Hryak @ Человек, который пишет (++i)++ - сам себе злобный Буратин. Самое печальное что не только себе, но и другим ![]() Да нет, себе. Тим лидер такое увидит - побьет ![]() Цитата Цитата Hryak @ Но никто не мешает делать всё наоборот. Но до такого совершенства надо долго расти. А хотелось бы побыстрее. Насколько быстрее-то? Чтобы после книжки "Освой XXX за 21 день" уже писать крутые мощные программы? ![]() |
Сообщ.
#233
,
|
|
|
Цитата impik777 @ Тут на самом деле ведется самый настоящий холивар Вот именно а толку как всегда мало ![]() Цитата impik777 @ поясни пож, че это за зверь Вот первоисточники правда не в полном обьеме Цитата man sh SH(1) BSD General Commands Manual SH(1) NAME sh - command interpreter (shell) DESCRIPTION sh is the standard command interpreter for the system. The current version of sh is in the process of being changed to conform with the POSIX 1003.2 and 1003.2a specifications for the shell. This version has many features which make it appear similar in some respects to the Korn shell, but it is not a Korn shell clone (see ksh(1)). Only features designated by POSIX, plus a few Berkeley extensions, are being incorporated into this shell. This man page is not intended to be a tutorial or a complete speci- fication of the shell. Overview The shell is a command that reads lines from either a file or the terminal, interprets them, and generally executes other com- mands. It is the program that is running when a user logs into the system (although a user can select a different shell with the chsh(1) command). The shell implements a language that has flow control constructs, a macro facility that provides a variety of features in addition to data storage, along with built in history and line editing capabilities. It incorporates many features to aid interactive use and has the advantage that the interpretative language is common to both interactive and non-interactive use (shell scripts). That is, commands can be typed directly to the running shell or can be put into a file and the file can be executed directly by the shell. Цитата man bash BASH(1) NAME bash - GNU Bourne-Again SHell SYNOPSIS bash [options] [file] COPYRIGHT Bash is Copyright © 1989-2005 by the Free Software Foundation, Inc. DESCRIPTION Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh). Bash is intended to be a conformant implementation of the IEEE POSIX Shell and Tools specification (IEEE Working Group 1003.2). Bash can be configured to be POSIX-conformant by default. А если по проще... Вот всем знакомы *.bat файлы под виндой - sh, bash... все это походит на *.bat но своими возможностями превосходит свой виндовый аналог во мноооого раз. То о чем я говорил Цитата best_lamer @ Тогда просто задумайтесь на минуту и прикиньте чего один оператор перенаправления ">>" стоит... К примеру команда man ищет хелп... если ввести man bash то она выплюнет описание bash которое можно прочитать прямо в консоли однако к примеру если ввести man bash >> ~/bash.txt то весь текст перенаправится в файл bash.txt и самое веселое что под файлами в Linux могут скрываться реальные устройства а сам тип файла (исполнимый текстовой и тп) не зависит от его расширения. Уже весело? Теперь добавте сюда то что любой файл оставаясь текстовым может при этом - быть исполнимым, иметь расширение *.jpg *.pdf или *.ваще_как_я_пожелаю, запускаться с кучей аргументов в коммандной строке, запускать еще кучу программ написанных на чем угодно от фортрана до бейсика и от С до Джавы не говоря о том что сам компилировать программы... и вы получите самое смутное представление о том что такое bash ![]() ЗЫ: Если по косточкам рассмотреть одну эту строчку man bash >> ~/bash.txt то 1) man bash нашли описание bash выплюнули на стандартный вывод 2) >> перенаправили со стандатрного вывода 3) в файл ~/bash.txt если файл существует то дописали в конец |
Сообщ.
#234
,
|
|
|
Цитата best_lamer @ Тогда просто задумайтесь на минуту и прикиньте чего один оператор перенаправления ">>" стоит... В Форте перенаправление ввода реализовано всего одним словом. И таким же словом реализовано перенаправление вывода. Более того, если я не ошибаюсь, такое и в С/С++ есть с древнейших времён. Ещё есть аргументы? Цитата impik777 @ И тут уже началось не обсуждение идеального языка а битва Форт vs С++ Ну так, просто среди участников дискуссии есть два кандидата на роль идеального языка - ты их уже назвал. Кстати, ты сам предложил сформулировать критерии идеального языка, а сам до сих пор не предложил свою версию. А ещё ты хотел поговорить о проектировании и опять же ничего внятного не сказал. То, что ты назвал несколько красивых слов, ничего не значит. Цитата impik777 @ почитай вот это Цитата Именно поэтому мы тут и выясняем, какой инструмент лучше. Лично я пять лет программировал на Паскале, пару раз писал на С(++?), мне не понравилось, когда перешёл на Форт - мне дико понравилось, до такой степени, что я с тех пор больше ни на чём не программирую (хотя нет, иногда пользуюсь матлабом - там можно графики чертить). Конечно, забивать гвозди Фортом нельзя, но для всех стоящих передо мной программистских задач Форт подходит лучше, чем всё, что я когда-либо пробовал. Цитата impik777 @ при плохих тестах его кода, он САМ должен копаться и исправлять, а не другой Далеко не всегда это возможно. |
Сообщ.
#235
,
|
|
|
Цитата wormball @ В Форте перенаправление ввода реализовано всего одним словом. И таким же словом реализовано перенаправление вывода. Более того, если я не ошибаюсь, такое и в С/С++ есть с древнейших времён. Ещё есть аргументы? Давай тот же пример вывода в файл man bash >> ~/bash.txt только с условием (!) что файл bash.txt физически лежит на другой машине в локальной сети или вообще не суть важно где именно... на серваке в далеком Гондурасе ![]() |
Сообщ.
#236
,
|
|
|
Цитата best_lamer @ если ввести man bash то она выплюнет описание bash которое можно прочитать прямо в консоли однако к примеру если ввести man bash >> ~/bash.txt то весь текст перенаправится в файл bash.txt и самое веселое что под файлами в Linux могут скрываться реальные устройства а сам тип файла (исполнимый текстовой и тп) не зависит от его расширения. Уже весело? Теперь добавте сюда то что любой файл оставаясь текстовым может при этом - быть исполнимым, иметь расширение *.jpg *.pdf или *.ваще_как_я_пожелаю, запускаться с кучей аргументов в коммандной строке, запускать еще кучу программ написанных на чем угодно от фортрана до бейсика и от С до Джавы не говоря о том что сам компилировать программы... и вы получите самое смутное представление о том что такое bash Удивил. Текстовые файлы и в виндовсе могут иметь какое угодно расширение, сокрытие устройств под файлами - это вопрос к дядюшке Биллу, а всё остальное хотя и отсутствует в моём Форте (за ненадобностью), но я это за два дня могу написать. А ты, если бы в баше этого не было, смог бы это всё реализовать? Добавлено Цитата best_lamer @ Давай тот же пример вывода в файл man bash >> ~/bash.txt только с условием (!) что файл bash.txt физически лежит на другой машине в локальной сети или вообще не суть важно где именно... на серваке в далеком Гондурасе Вопрос в библиотеках. |
Сообщ.
#237
,
|
|
|
ОЧЕНЬ кратко про MVC
Цитата wormball @ Кстати, ты сам предложил сформулировать критерии идеального языка, а сам до сих пор не предложил свою версию мои критерии - в принципе критерии best_lamer'а еще идеальный язык должен позволять максимально просто моделировать объекты реального мира, при этом синтаксис должен максимально просто приводить это моделирование к MVC виду, что бы код был легко переносим, и переход с любой библиотеки ввода вывода был максимально прост типа достаточно изменить пару строчек и код вывода не изменяется, а прога уже работает под MFC вместо VCL, или вообще под DirectX. т.е. способы выводы и ввода,точнее их интерфейс всегда был одинаков |
Сообщ.
#238
,
|
|
|
Цитата impik777 @ ОЧЕНЬ кратко про MVC Насколько я понял, это просто приём программирования. Тогда его можно реализовать на чём угодно. |
Сообщ.
#239
,
|
|
|
Цитата wormball @ Текстовые файлы и в виндовсе могут иметь какое угодно расширение ![]() ![]() Цитата wormball @ сокрытие устройств под файлами - это вопрос к дядюшке Биллу Ну от этого дождётесь! ![]() Цитата wormball @ а всё остальное хотя и отсутствует в моём Форте (за ненадобностью), но я это за два дня могу написать. А ты, если бы в баше этого не было, смог бы это всё реализовать? Не проблема! Python устроит? Пять строчек - это если файл на мыло отправлять при помощи Python! ![]() Но смысла особого в этом не вижу ибо одним bash можно ![]() Цитата wormball @ Вопрос в библиотеках. Ага вот вот. А я в bash могу использовать все программное обеспечение установленное на компе вне зависимости от языка программирования на котором создана программа + если есть исходник программы я могу собрать ее... А если нет вообще ничего (или есть необходимый минимум) но есть интернет - wget рулит ![]() ![]() |
Сообщ.
#240
,
|
|
|
Цитата wormball @ Насколько я понял, это просто приём программирования. Тогда его можно реализовать на чём угодно. Да, но лучше, чтобы синтаксис упрощал это дело и еще про проверку диапазонов хорошо бы, если бы синтаксис упрощал проверку диапазона и автоматически кидал исключение в случае выхода из него то же самое в случае ввода некорректной информации |