Форум SoftWeb.ru

Форум SoftWeb.ru (https://softweb.ru/index.php)
-   Языки программирования (https://softweb.ru/forumdisplay.php?f=261)
-   -   Вечный спор: какой язык лучше? (https://softweb.ru/showthread.php?t=32547)

Владимир_ 12.03.2009 20:12

Вечный спор: какой язык лучше?
 
• Программирование машинными кодами.
• Ассемблер.
• (ООП) Объектно Ориентированное Программирование.
• Визуальное программирование.

• Программирование написанием машинных кодов!
- Способ очень не удобный и сложный с точки зрения человеческого фактора.
+ Быстрое исполнение кода.
В помощь Людям (программистам) было найдено решение с помощью которого программировать стало не только легче но и быстрее!
Компилятор: программа которая переводит текст программы в машинный код, первый компилятор назвали Assembler.(сборщик)

• Assembler: некоторые советуют начинать именно с него но:Писать на нём практически так же сложно как и в машинных кодах только теперь использовались не цифры а понятные слова.
- дольше исполняется код.
+ гораздо быстрее пишется программа, а это не маловажный фактор.
В споре между машинным кодом и ассемблером предпочтение было отдано быстроте написания программ, то есть: Ассемблеру.

Спустя некоторое время стали появляться языки программирования, такие как: Pascal, Basic, C и другие...
И с этого начался спор какой язык таки лучше?***
Спор разделился на две части:
1.Какой язык лучший?
2.Что лучше язык низкого уровня или высокого?
Спор по первому вопросу не может закончится до сих пор.

Языки высокого и низкого уровня.
Язык низкого уровня это тот, который ориентирован на команды процессора т.е. Ассемблер.
К языкам высокого уровня относятся С, Pascal, Basic которые создают максимум удобства для написания программ.
В низком уровне код исполняется быстрее а в высоком программа пишется быстрее.
Нельзя сказать что машинные коды и ассемблер окончательно ушли из нашей жизни. Они используются до сих пор.
Ассемблер используется в качестве вставок в языки высокого уровня, а машинные коды используются для написания того,
что не может компилятор.

• (ООП) Объектно Ориентированное Программирование.
Преобразование языков с С до С++, Pascal в Object Pascal.
И снова противостояние скорости разработки против скорости выполнения программного кода,
в результате победила скорость и удобство разработки т.е. (ООП)
Последней крупной революцией в программировании считается переход на визуальное программирование.

• Визуальное программирование.
Визуальность даёт нам ещё более удобные средства разработки для более быстрого написания кода,
но проигрывает (ООП) по быстроте работы.
Лидером разработки визуальных языков является Borland.
Вот и весь спор (Скорость разработки vs скорость кода)?***
В общем Borland пока рулит можно выбирать любой компилятор и вперед. Мой выбор Delphi))•

Подведём итог:
1. Если вы будете писать базы данных, программы общего значения или утилиты то ваш язык Delphi или C++
2. Если это игры, то желательно Visual C++ или Watcome C плюс знание Assembler,
но это не значит что нельзя использовать Delphi или C++ Builder.
3. Если драйверы и работа с "железом" где критичен размер фаила то ваш язык чистый С или Assembler.

Выводы делать только вам))•

4айник 18.03.2009 08:43

Re: Вечный спор: какой язык лучше?***
 
Цитата:

Сообщение от ВЛАДИМИР_ (Сообщение 403380)
• Assembler......Писать на нём практически так же сложно как и в машинных кодах только теперь использовались не цифры а понятные слова.

на современных макоассемблерах пишется ничуть не сложнее, чем на языках высокого уровня


Цитата:

Сообщение от ВЛАДИМИР_ (Сообщение 403380)
Вот и весь спор (Скорость разработки vs скорость кода)?***
В общем Borland пока рулит можно выбирать любой компилятор и вперед. Мой выбор Delphi))•

Подведём итог:
1. Если вы будете писать базы данных, программы общего значения или утилиты то ваш язык Delphi или C++
2. Если это игры, то желательно Visual C++ или Watcome C плюс знание Assembler,
но это не значит что нельзя использовать Delphi или C++ Builder.
3. Если драйверы и работа с "железом" где критичен размер фаила то ваш язык чистый С или Assembler.


все-же я критерии выбора языка программирования немного изменил-бы. И самым первым критерием поставил бы вопрос "для какой платформы". Поскольку некоторые платформы подразумевают ограниченный выбор лишь из: маш.коды, ассемблер, С, Fort или вообще без выбора - только что-то одно из перечисленных (или не перечисленных). Вторым критерием я бы поставил вопрос переносимости между платформами, что может еще более сильно сузить выбор инструмента. Третьим критерием является предметная область, поскольку для решения некоторых специфичных задач уже давно выбраны соответствующие эффективные пути решения. Ведь было бы странно писать на Дельфях приблуду, собирающую отчет из 1С, или рисовать в билдере прогу отображения странички сайта (хотя нет ничего невозможного xi: ). После чего я бы поставил условие коллективной разработки, поскольку некоторые инструментальные средства интегрируют в себя средства поддержания коллективной разработки проекта, в некоторых инструментальных средствах этот вопрос можно решить организационно, а в некоторых средах (Акцесс, кларион и т.п.) этот вопрос не решается принципиально. И лишь теперь бы обратился к вопросу "скорость выполнения (потребляемые программой ресурсы) vs скорость написания (потребляемые разработчиками ресурсы)". И рассматривая этот аспект, я бы увидел, что скорость написания не всегда равна удобству сопровождения (а зачастую между ними обратная зависимость). Кроме того, нельзя упускать из виду и квалификацию персонала, сопровождающего проект. Очевидно, что если проект ориентирован на сопровождение исключительно силами заказчика, как правило имеющего в штате лишь операторов и в лучшем случае еще и админа, то проект должен предусматривать гибкие настройки без внесения изменений в программный код, что увеличивает как сроки разработки проекта, так и его стоимость. С другой стороны, если заказчик имеет в штате какого-нибудь программиста, работающего с определенным набором инструментов, то очень часто заказчик будет стремиться ограничить выбор инструментария именно этим набором. Так-же нельзя забывать и о таком неочевидном факте, что иногда скорость (не путать с удобством) разработки на языке ООП или в визуальной среде оказывается ниже, чем на классическом процедурно-ориентированном языке высокого уровня.

подведу краткий итог: все языки хороши. каждый - в своем, сугубо индивидуальном случае. Если вы довольны своим выбором, значит вы угадали, если недовольны - неугадали :). А поскольку все языки достаточно сходны между собой, то имеет смысл выучить лишь один язык (или по одному языку низкого, среднего и высокого уровня, ООП и визуального программирования) и переход на другой язык (при наличии соответствующего справочника команд, функций, объектов) будет практически безболезненным и мгновенным.

Желаю вам получать от программирования моральное и материальное удовлетворение! ;)

GeorgX 18.04.2009 20:08

Re: Вечный спор: какой язык лучше?***
 
Для задач прикладной математики и механики – лучшим (длина кода, скорость вычисления ) остается старичок Fortran, но сейчас мало тех, кто им пользуется.

mrdimon 23.04.2009 00:19

Re: Вечный спор: какой язык лучше?***
 
Цитата:

Сообщение от Пеппи (Сообщение 418232)
DOS увы уже не современнен

А вот я столкнулся с девайсом, который сначала грузится под DOS'ом, а потом грузит Linux. Этот девайс называется HomeServer, ([Ссылки могут видеть только зарегистрированные пользователи. ] производителя) и используется в качестве шлюза между TCP/IP, knx EiB, ISDN, WEB Server'а, сервера визуализации и управления.

Цитата:

Сообщение от banevur (Сообщение 430502)
Атас.. чего только китайце не наворотят.

не, ошибаетесь. Это чистокровный немец.

evovka 25.05.2009 09:26

Re: Вечный спор: какой язык лучше?***
 
Споры о языках программирования проходят не только в программировании ПК, но при программировании микроконтроллеров (кто не знает – это маленький процессор + всякие маленькие устройства).
Попробую пояснить из своих знаний.
Любой процессор, микроконтроллер и т.п. понимают только 1 и 0, т.е. цифры, более конкретно уровень напряжения (низкий и высокий). Из этих цифр получается машинный код, который понимает процессор. Каждый машинный код подразумевает выполнение одной команды. В каждой команде есть код команды и операнд, над которым происходи действие.
Ассемблер – тот же машинный код, только код команды заменён на символы, для лучшего запоминания. Дальше пишется символ операнда. После написания запускается программа, которая символы команд , которые мы писали, заменяет на машинные коды, т.е. на цифры. В результате мы получаем практически тот же файл, что и написанный в машинных кодах.
Для удобства написания появились другие языки, которые получились в результате соединения нескольких команд в один макрос. Так все языки высокого уровня состоят из таких макросов. Я только знаком с ассемблером, немного СИ (для микроконтроллеров) и Бейсик (для компьютеров). Так вот, к примеру взятая команда PRINT в бейсике состоит из нескольких команд ассемблера (машинных кодов) и после преобразования команды PRINT для понимания процессором мы получим кучу команд в машинных кодах.
Для написания на ассемблере нужно знать не только программирование, но и нужно знать структуру, строение, принцип работы процессора ( аккумулятор, регистры, регистровые пары, шины и т.д.), чем можно пренебречь (кроме редких случаем) при написании на языках высокого уровня.
Вот есть статья [Ссылки могут видеть только зарегистрированные пользователи. ] , кому интересно почитайте.

4айник 01.08.2010 08:47

Re: Вечный спор: какой язык лучше?***
 
Цитата:

Сообщение от zorg (Сообщение 539728)
java давно делает по скорости как Cи, так и C++, благодоря jit

ты что-то путаешь. если по С++ и С# картина примерно такая, то вот просто С джаве не обскакать даже не смотря на JIT. тем более что первое выполнение даже с JIT один хрен медленное. да и с оптимизацией кода есть проблемы. А про требования к оперативке я уж просто промолчу.....

ayatoliy 01.08.2010 15:29

Re: Вечный спор: какой язык лучше?***
 
Про FORTRAN: Это первый и это Великий язык, многие расчёты (особенно серьёзные библиотеки и программы с многолетней традицией) написанны именно на нём.
У языка FORTRAN много достоинтств:
*) Великолепная предметоориентированность;
*) Простой и понятный синтаксис;
*) Совместимость с предыдущими версиями;
*) Распространнёность компиляторов;
*) Великолепная переносимость (кто там что про яву говорил ??? ...:) )
из недостатков ... это не полноразмерный ООП нууу и миф о том что FORTRAN это что то старое с оператором GOTO...)))

Язык создавался для расчётов, на нём уже написаны миллионы строк кода.
Причём это расчёты и это код на котором без преувеличения держится Мир: траектории полёта, нагрузки на ..., газо и гидродинамика, прогнозирование погоды, волновые расчёты... список длинный.
В любом современном сложном изделии есть расчёты сделанные на FORTRAN-е или с использованием расчётных программ математика которых написана на FORTRAN-е.
Для суперкомпьютеров нууу или мощных машин под расчёты типовой вариант что третьим реализованным на них языком после Assembler и С будет именно FORTRAN.
Про переносимость FORTRAN-а очень часто мне приходилось переносить программы ... как пример программа работавшая на ЕС ... была перенесена на ещё тогда 286 компьютер после чего была перенесена на PowerPC после чего поработала на SGI ... перенос заключался в переписывание пакетного ввода вывода ЕС ... а дальше в изменение кодировки строк содержащих русские буквы...)))

Про синтаксис и GoTo ...
Синтаксис языка FORTRAN менялся и те кого в далёкой молодости мучали блок-схемами и операторами GoTo ... Вам не повезло ...:)
Есть более современные реализации стандарта языка FORTRAN-77, FORTRAN-90, FORTRAN-2003, FORTRAN-2008.

Кстати попутно ... Просто рыдаю над некоторыми нашими преподами ... пихают в децкие головы Паскаль и заставляют перед этим рисовать блоксхемы ... про вред GoTo говорят ... Вообщето блоксхемы были ИДЕАЛЬНО ПРИСПОСОБЛЕНЫ можно сказать заточены под дальнейший перенос алгоритма на FORTRAN с арифметическим оператором IF и многочисленными GOTO ...)))
Или что то посовременнее блоксхем или учите детей GOTO не только на заборах писать ...)))

Для интересующихся рекомендую [Ссылки могут видеть только зарегистрированные пользователи. ].
================================================== ====
Про Паскаль...Делфи:
Моё мнение это ЗЛО, настолько же вредное для молодёжи как и пивной алкоголизм...

Почему ? да потому что отвлекает от средств разработки действительно достойных внимания нуу и мозги засоряет.
А многократно повторяемый миф что "Паскаль - язык разработанный для обучения" - Да было такое благое намеренье, но хорошо что многие преподаватели и Вузы уже поняли вред от такого подхода.

zorg 13.08.2010 00:22

Re: Вечный спор: какой язык лучше?***
 
Все не так однозначно, если взять hello word, или утилиту уровня "grep", то возможно.
Если взять большую систему обработки данных enterprise уровня, то там давно всех java съела.
Вот еще хорошая ссылка - [Ссылки могут видеть только зарегистрированные пользователи. ], начиная с malloc`a и заканчивая автоматическим stack/heap распределением.

В мире профессиональной разработки OpenSource почти всех съела идея VM, за текущим лидерством Java. Аргументация простая, - смотрим на apache.org, у них более 80% проектов java. Да, начинали с си, теперь не начинают. Далее идут, IBM, Oracle, google...

ayatoliy 13.08.2010 01:15

Re: Вечный спор: какой язык лучше?***
 
zorg, вообще за деньги или наспор и к трамваю можно приделать ракетный двигатель и заставить летать ... метров 5...6... :)
но всё равно самолёт это делает лучше и с менее мощным двигателем...:)
Вопрос в другом трамвай должен ездить самолёт летать а яве место там где ей место ... а говорить что "там давно всех java съела" это скажем так очень сильное преувеличение далёкое от истины ...:)


Вообще можно ещё больше сузить то что раньше было торжественно обозвано "большую систему обработки данных enterprise уровня" и останется собственно та часть где применение явы действительно оправдано...обоснованно...выгодно..

zorg 13.08.2010 15:53

Re: Вечный спор: какой язык лучше?***
 
Мне казадось, что тема изначально называлась какой язык лучше, а не какой язык лучше _мне любимому_.
По первой теме подискутировать интересно, вторая - напоминает тему с женского форума, в корой главное высказаться с позиций личных интересов.

По существу первого, я привел два примера, первый - корпоративный сектор который генерирует достаточно бабла, что бы применять оправданно лучшие технологии. Второй, - сферу профессионавльного программирования, в котором текст программы является самопродающим автора элементом, показывающим качество проделаной работы в целом, и поэтому объективно должен отличаться каким-то общепринятым обществом, критериям качества.

ps: Что касается микроконтроллеров, то новые технологии приходят и туда, я думаю, что уже ваши дети будут ценить свое время и принимать происходящую реальность, что бы дарить свое время миру максимально эффективно. [Ссылки могут видеть только зарегистрированные пользователи. ]


Часовой пояс GMT +3, время: 16:15.

Работает на vBulletin® версия 3.8.12 by vBS.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot