LINUX.ORG.RU
ФорумTalks

“Программируйте с использованием языка, а не на языке” vs быдлокодерские и небыдлокодерские языки


4

2

//Видит бог, тему хотел создать в Talks...

Здравствуйте. Я новичок в программировании, опыта работы у меня нет. Следовательно какие-то особенности работы программиста, явления в программировании и “подводные камни” для меня могут быть скрыты. Сейчас я подыскиваю работу или место для стажировки и мне стали доступны вакансии C#-программиста и Python-программиста.

И вот в чём мой вопрос.

Я заметил, что существует два образа мышления среди программистов:

1. “Программируйте с использованием языка, а не на языке”. Программист – это образ мышления, способность к абстракции, логике, знание алгоритмов. Язык – это лишь инструмент для выполнения определённой задачи. Если ты хороший программист, то ты (с некоторыми оговорками) можешь решать разные задачи, на разных языках.

2. В мейнстримовых языках снижают порог вхождения. Их делают простыми. Технологии развиваются таким образом, чтобы сделать создание программ максимально простым и быстрым. Это правильно, но приводит к тому, что программисты “тупеют”, можно быть программистом, не зная основопологающих и очень важных вещей. Таким образом появляется деление на “быдлокодерские” и “небыдлокодерские” языки. Соответственно, программирование на “быдлоколерских” языках какбы отупляет.

С одной стороны есть C#. Он считается, как мне показалось, именно “быдлокодерским”. С другой стороны Python. Конечно, не haskell какой-нибудь, но язык (опять же – как мне показалось), считается серьёзным, пользуется популярностью в академиечских кругах, сам видел MIT'шные курсы на нём.

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

И в итоге, главный вопрос: в начале карьеры, стоит ли выбрать программирование на серьёзных языках (то есть, принять ли правильным пункт 2), или не парить себе мозг (принять пункт 1)? Или возможно, даже если первый пункт верен, всё равно стоит предпочесть Python?

Перемещено post-factum из general


Ответ на: комментарий от Macil

По ecl подсказать не могу. Я его изредка запускаю. Вот, сегодня запустил только для того, чтобы проверить, что все юнит-тесты в одной моей библиотеке стали отрабатываться нормально после того, как вышла новая версия closer-mop, правда, которая еще не попала в репы quicklisp.

А так, у меня есть опыт переписывания одного и того же кода из scala на cl. Да, иногда такой фигней занимаюсь для самого себя :)

Код на cl многословнее, конечно, но не намного, от силы в раза два-три. В лиспе просто принято давать длинные имена из-за динамики и прочих причин. Но удается одинакого легко запрограммировать почти все, что у меня есть в scala. Вон, даже паттер-матчинг есть через библиотеку optima. Трейты само собой, поскольку линеаризация списка наследования в лиспе появилась гороздо раньше - это не изобретение Одерского. На днях придумал библиотеку ленивых последовательностей. Так что, бесконечные потоки и итераторы делаются на лиспе легко. Есть библиотека на лиспе, имитирующая события и observable из f#, аналог которой я тоже широко использую на scala. Есть еще некоторые итерируемые коллекции, которые мне нужны в работе. В общем, большой набор готовых инструментов, к которым я привык, программируя на других языках. Здесь же скромно умолчим о том, что далеко не любой код на cl можно будет также легко перевести на scala.

dave ★★★★★
()
Ответ на: комментарий от Macil

Правда REPL у него, как я понял, только в режиме интерпретации а-ля GHC.

REPL у него умеет (compile ... ) в соответсвии с CLHS. После sbcl непривычно, да. Но компилируемую суть не влияет.

antares0 ★★★★
()
Ответ на: комментарий от Macil

FFI не стандартизован,

Это при наличии стандарта де-факто в виде CFFI, который используется практически всеми открытыми проектами с живаым upstream-ом?

antares0 ★★★★
()
Ответ на: комментарий от BattleCoder

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

если какой-то временный индекс в какой-то функции называется «i» - я не вижу в этом ничего плохого. Но если какая-то _глобальная_ функция называется f() - у пишущего проблемы с головой. Метод вроде get_size() несколько лучше, но только если вполне *очевидно*, что он *должен быть*. Вообще, глобальные функции и должны называться так, что-бы их можно было найти глобально. Локальные в пределах модуля - так, что-бы найти в модуле. Vim это умеет. Если требуется найти все функции f() - проблема уже не в IDE.

drBatty ★★
()
Ответ на: комментарий от BattleCoder

вы сказали, что НЕТУ. я опровёрг ваше утверждение. Я не пробовал эту библиотеку (я вообще на пыхпыхе не пишу), не знаю насчёт её качества.

Ну хорошо. Я пропустил «нормальные известные и развивающиеся интерфейсы». Извините.

И давайте не будем примеров на Qt, которые никто не трогал 5(ПЯТЬ!) лет. Вы вообще в курсе, что 5 лет назад ЕМНИП царствовал Qt3, который сейчас НИКТО не юзает? (кроме задротов с первым пнём на десктопе). Ну это как я скажу, что в транспорте хомут и оглобли не юзают, а вы мне пруфом телегу с кобылой предоставите.

drBatty ★★
()
Ответ на: комментарий от makeB

И что дальше? Там много что работает, однако факта диковинки питона в виндовс это не отменяет, питон там инопланетное нечто, большинство виндузятников даже не знают о его существовании.

большинство виндузятников не знают про отличие COM и EXE файлов, что не мешает юзать им и то и другое. Пример приложения, которое _реально_ юзают многие маздайщики: mercurial. Оно восновом на пайтоне.

И поставить интерпретатор для таких, это сродни покорению эвереста

умник, блин. Ты попробуй самую простую гаму крякнуть и поставить (предварительно найдя рабочий кряк без вирусов). А пайтон там ставится в три клика, любой дебил осилит. Не позорься, попробуй сначала.

drBatty ★★
()
Ответ на: комментарий от Macil

С - есть высокоуровневый ассемблер. Учить его per se - напрасная трата времени.

Глупости. Знать даже реальный ассемблер полезно, а переносимый - очень полезно.

tailgunner ★★★★★
()
Ответ на: комментарий от kamre

Это проблема, и vim/emacs со своими примитивными средствами решать ее никак не помогают. А кода с идеальной архитектурой и идеальной документацией не бывает в реальной жизни, так что эффективнее в коде (особенно чужом) разбираться с нормальными средствами для навигации.

тебе многое не известно про средства навигации Vim'а. Там не только глазки и pageup/pagedown.

drBatty ★★
()
Ответ на: комментарий от dave

Происходит не сразу, а постепенно в процессе разработки. Язык программы становится все ближе и ближе к предметной области. Это он противопоставлял программированию на «обычных» языках, имея в виду Си и паскаль, когда двигаются в противоположном направлении, пытаясь термины предметной области втиснуть в узкие границы выбранного языка программирования.

его позиция ясна, но он лукавит: на самом деле, недоделанная общая программа на LISP точно также НЕ работает, как и недоделанная программа на C++. Когда ты пишешь на C++, ты тоже можешь использовать везде списки (или массивы), не взирая на эффективность, можешь везде писать new реализуя «нулевой GC» (который ничего не собирает, ибо нету), и так далее. Потом ты можешь это всё допилить. Конечно в чистом виде такой поход подходит только для прототипов маленьких модулей, но ЯП тут не причём.

Основаны эти утверждения на его богатом опыте создания и изучения программ по ИИ (AI) (целую книгу PAIP написал на тысячу страниц).

книг по ИИ написано Over9000, но ничего похожего на ИИ пока нет. Я тоже могу написать книгу «как стать миллионером», но с моим доходом это будет как минимум нечестно.

Я думаю, что это связано с противопоставлением двух методов проектирования: нисходящее (Си и тому подобное) и восходящее (лисп, хаскель, да, вообще, многие функциональные языки плюс форт).

оно такое только в очень простых задачах. чуть более сложных используется итеративный подход - к задаче идут сначала сверху, потом снизу. А потом повторяют итерацию. Вне зависимости от ЯП. Вот как в SICP.

Реальность, конечно, сложнее. Часто встречается итеративная разработка, но в случае использования C# или Java, она все же ближе к нисходящему методу проектирования с периодическими остановками.

потому-что на C# и Java разрабатываются концептуально несложные проекты. Сайт с Over9000 страничками на самом деле не сложен концептуально, хоть и займёт 100500 строк, если писать на каждой страничке свою логику и свои кнопочки(везде разную).

И все-таки, язык сильно диктует то, как решается задача. Так же как, человеческий язык диктует то, как и какие мысли формулируются. Те же слова подчас имеют совершенно разный смысл и оттенки.

не вижу никаких отличий в алгоритмах Кнута на ассемблере, и в SICP на схеме. Ну кроме того, что первые на 2 порядка тупо быстрее. Хотя писать их раз в 5..10 дольше. Всё это связано с тем, что SICP навязывает структуру данных и стиль, а Кнут пишет как ему удобнее. Но Кнуту приходится больше ковыряться в мелких деталях. Проблема в том, что в деталях _всё_ _равно_ придётся ковыряться IRL.

drBatty ★★
()
Ответ на: комментарий от Macil

Увы, погоня за динамикой вышла CL боком: он предельно аморфен.

это не баг, но фича - программа может жрать всё что угодно (в т.ч. и другие программы).

На деле вышло так, что индустрии было выгоднее жрать блевотину «класс - есть тип-интерфейс-поведение», чем пытаться оснастить CL «хребтом» на более высоком - компонентном - уровне.

любой индустрии НЕ нужны универсальные инструменты: кусок мяса ты порежешь как любитель и швейцарским ножом, но у патологоанатома Over9000 инструментов для тех же целей. Потому-что он профи. Единственная область, где жив LISP - это AI, в котором никто не может понять, КАК представлять данные.

drBatty ★★
()
Ответ на: комментарий от Macil

С - есть высокоуровневый ассемблер. Учить его per se - напрасная трата времени.

лично я не понял, почему из первой фразы следует вторая?

drBatty ★★
()
Ответ на: комментарий от dave

Про связь ООП и ФП относительно лиспа могу сказать так. Обычный для других языков метод является в CL функцией, точнее обобщенной функцией, которая может специализироваться на аргументах. Ну, буду проще. На метод смотрят как на функцию. Чем не симбиоз ООП и ФП?

разница в контекстах: в ФП функция работает сразу во всех своих контекстах, которые _динамически_ создаются в рантайме. В ФП функция - это на самом деле намного больше, чем метод в ООП, ибо каждая функция связана со своими контекстами, которыми она обрастает в процессе работы. В C++ контекст жёстко задан уже во время компиляции. Тебе так нравится ФП именно потому, что для тебя функции в других ЯП кастрированные, и не дают нужных тебе возможностей. Проблема в том, что твоё ФП тоже кастрированное, но уже в другом. Например в том, что присваивание можно там реализовать исключительно кривыми и запутанными костылями. Имеются и другие проблемы ФП, о которых не ведают в ИП (в частности в ООП).

drBatty ★★
()
Ответ на: комментарий от Macil

С - есть высокоуровневый ассемблер. Учить его per se - напрасная трата времени.

Для быдлокодерства на пхп - нет, не нужно. Но не всем же опускаться к такому уровню.

Deleted
()
Ответ на: комментарий от drBatty

Мне нравятся гибридные языки, например, лисп, который одновременно поддерживает несколько парадигм, являясь и функциональным (пуристы идут нафиг), и объектно-ориентированным одновременно.

dave ★★★★★
()
Ответ на: комментарий от dave

Мне нравятся гибридные языки, например, лисп, который одновременно поддерживает несколько парадигм, являясь и функциональным (пуристы идут нафиг), и объектно-ориентированным одновременно.

ИМХО писать функциональный код на C++ это извращение. Как и итеративный на LISP. Вот как с ООП в ФП я не очень в курсе. ООП ИМХО оно выше ФП vs IP...

drBatty ★★
()

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

(Далее немного субъективщины.)

Мне вот, например, Питон с его отступами жутко не нравится. :) И я подозреваю, что если писать на языке, к которому у тебя неприязнь, это соответствующим образом скажется на качестве кода. Спорно, но подтверждается опытом. Мне как-то (лет так 11 назад) пришлось доводить до ума программу, написанную убеждённым плюсовиком и паскалененавистником, которого заставили писать на Delphi. Уж лучше бы не заставляли, ей-богу.

hobbit ★★★★★
()
Ответ на: комментарий от drBatty

Программирование об абстракциях. Вот, в лиспе есть циклы. На них можно смотреть как на императивные штуковины. Но на некоторые лисповские циклы iter/loop можно смотреть и на как вполне такие декларативные сверх-штуки: list comprehension, все дела. Все относительно, и сильно зависит от навыков, знаний и способностей наблюдателя. Если с си++ многое ясно, то в лиспе очень большой простор для творчества. Язык неизмеримо богаче. Впрочем, что я тебе банальности пишу?..

dave ★★★★★
()
Ответ на: комментарий от dave

Программирование об абстракциях. Вот, в лиспе есть циклы. На них можно смотреть как на императивные штуковины. Но на некоторые лисповские циклы iter/loop можно смотреть и на как вполне такие декларативные сверх-штуки: list comprehension, все дела.

почему нельзя смотреть на функции сишечки как на сверх-штуки?

Все относительно, и сильно зависит от навыков, знаний и способностей наблюдателя. Если с си++ многое ясно, то в лиспе очень большой простор для творчества. Язык неизмеримо богаче. Впрочем, что я тебе банальности пишу?..

это не банальность для меня. Мне кажется, что ты C++ знаешь как я твой LISP, вот тебе и кажется «намного богаче». На самом деле, в этом вашем LISP'е куча недостатков, которыми как всегда нужно расплачиваться за его достоинства.

drBatty ★★
()
Ответ на: комментарий от drBatty

Почему то многие, кому лисп не понравился, наивно полагают, что лисперы не знакомы с их любимыми языками. В прошлом я работал программистом Си++, патча, поддерживая и развивая один телекомовский сервер, а до того писал для Palm OS на обрезанном Си++. В общем, промахнулся ты.

dave ★★★★★
()
Ответ на: комментарий от dave

И что, реально на лиспе можно что-нибудь серьезное написать? Т.е. есть куча библиотек: для CGI, ввода-вывода данных, баз данных, обработки изображений/видео, работе с железом и т.д., и т.п.???

Короче: модуль ядра на лиспе покажешь?

Eddy_Em ☆☆☆☆☆
()
Последнее исправление: Eddy_Em (всего исправлений: 1)
Ответ на: комментарий от drBatty

На самом деле, в этом вашем LISP'е куча недостатков, которыми как всегда нужно расплачиваться за его достоинства.

Но не таким говном, как твои обожаемые и воспеваемые плюсы.

Deleted
()

И в итоге, главный вопрос: в начале карьеры, стоит ли выбрать программирование на серьёзных языках

В первую очередь выбор должен идти от того, чем занимается контора, будет ли это интересно, и какие перспективы это имеет. Естественно, с оцениванием соответствия своих умений предлагаемой позиции. Ну и нужно посмотреть на условия и настроения, когда приходишь на собеседование (хотя в 80% случаев все равно не поймешь). Насчет ЯП не нужно парить себе мозг. Кроме ЯП есть куча вещей под названием спецификации, протоколы, стандарты, шаблоны проектирования, особенности предметной области и т.п. И они ничуть не менее важны, чем ЯП. Можно отупеть, программируя на блестящем языке программирования какую-нибудь хрень в унылой команде, погоняемой начальством, а можно стать профи, программируя на «быдлоязыке» мегакрутую штуку в дружном веселом коллективе, который сам стремится что-то сделать без пинков сверху, и это одобряется.

zhuravlik ★★★★
()
Ответ на: комментарий от Eddy_Em

Написать можно, пишут и писали.

Была операционка genera на лиспе. Но твой вопрос подразумевает другое: можно ли на яве или питоне написать модуль для ядра, которое ориентировано на си?

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

Веб сервер: hunchentoot. Апликушный сервер restas написан уважаемым archimag.

Коммерческая объектная база данных: allegro cache.

Обработка изображений попадалась, но я не помню названия. Мне это неинтересно.

Работой с железом занимается компания, в которой работает уважаемый mv.

Еще попадалась информация об аналитической и поисковой системе, которая используется в Англии для борьбы с преступниками. Там юзер-френдли гуи, различные диаграммы, огромная база данных и т.д.

Когда спрашивают, а что можно написать на лиспе, то я обычно привожу в пример визуальное приложение InspireData для массового рынка. Но обычно после этого тема обсуждения быстро сворачивается, и становится ясно, что совсем не для того спрашивали, чтобы узнать, а можно на лиспе написать хорошее приложение ;)

dave ★★★★★
()
Ответ на: комментарий от dave

Почему то многие, кому лисп не понравился, наивно полагают, что лисперы не знакомы с их любимыми языками.

потому, что ты пишешь:

Язык неизмеримо богаче.

писал для Palm OS на обрезанном Си++.

а... ну так-бы сразу и сказал: «я сравнивал с кастрированным ЯП». Так вот C++ намного богаче, чем твоё подмножество.

В общем, промахнулся ты.

нет. ты это как раз сейчас и доказал. Ты не писал программ на C++, ты только патчил их, т.е. использовал навязанные тебе патерны, а не выбирал свои. Потом тебя тоже ограничили, уже самим ЯП, в котором и выбирать-то не из чего. Ну и что ты знаешь собственно про программирование на С++?

drBatty ★★
()
Ответ на: комментарий от Eddy_Em

И что, реально на лиспе можно что-нибудь серьезное написать?

легко. Можно удобно использовать функции высшего порядка, потому твои модули без всяких изменений будут работать с чем угодно. Это такое «сверх-ООП», которое не ограничено только классами. Например на C++ ты можешь реализовать коллекцию, которая без всяких изменений работает с любым наследником класса Base, т.е. это метопрограммирование для данных. А в LISP'е ты можешь не только сделать коллекцию над данными, но и без всяких изменений перепрограммировать сами алгоритмы её работы. В C/C++ это получается криво, а в LISP'е - более-менее (кривизна прячется от кодера).

Т.е. есть куча библиотек: для CGI, ввода-вывода данных, баз данных, обработки изображений/видео, работе с железом и т.д., и т.п.???

кто мешает юзать модули на C?

drBatty ★★
()
Ответ на: комментарий от drBatty

Думаю, отчасти и из-за С++: неверно выбранный язык + руки == тонна говнокода.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от dave

я обычно привожу в пример визуальное приложение InspireData для массового рынка. Но обычно после этого тема обсуждения быстро сворачивается

оно сворачивается потому, что тестовая 30и дневная закрытая версия никому не нужна. Оно в Slackware хоть работает? Может оно вообще не на LISP'е? Чем докажешь? Где ссылка load source? Я тебе могу с тем же успехом сказать, что M$-Office написан на brainfuck'е.

drBatty ★★
()
Ответ на: комментарий от dave

Тебя, мудака, в игнор отправляю. Надоел ты мне.

слив засчитан. До свидания.

drBatty ★★
()
Ответ на: комментарий от dave

Психика у тебя ни к черту — попей валерьяночки.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Этот тип и раньше хамил. Сейчас мне он уже надоел окончательно.

dave ★★★★★
()
Ответ на: комментарий от Eddy_Em

После помещения товарища в игнор, у меня пропала часть сообщений. Та ветка начиналась от некоего сообщения того товарища. Соотвественно, я не вижу все, что дальше по той линии.

dave ★★★★★
()
Ответ на: комментарий от vertexua

Я пишу на жабе в виме под андроид. На крестах - под андроид ndk. Пробовал эклипс, что идет с sdk - тормозит безбожно.

vvviperrr ★★★★★
()
Ответ на: комментарий от dave

После помещения товарища в игнор, у меня пропала часть сообщений. Та ветка начиналась от некоего сообщения того товарища. Соотвественно, я не вижу все, что дальше по той линии.

ССЗБ.

drBatty ★★
()
Ответ на: комментарий от drBatty

любой индустрии НЕ нужны универсальные инструменты

Конечно-конечно. То-то технология RAD цвела и пахла в свое время! В принципе, и сейчас оно никуда не делось, только называется по-другому.

Индустрия любит ферймворки (швейцарские ножи), а не наборы библиотек (инструменты патологоанатома).

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

Ну и до кучи, CL целиком и полностью проигнорировал visual-ООП-волну середины 90-х.

Macil ★★★★★
()
Ответ на: комментарий от tailgunner

Знать даже реальный ассемблер полезно, а переносимый - очень полезно.

Не нужно подменять знание низкоуровневой архитектуры своей среды знанием ассемблера.

Macil ★★★★★
()
Ответ на: комментарий от Macil

Индустрия любит ферймворки (швейцарские ножи), а не наборы библиотек (инструменты патологоанатома).

ты про домашние странички для васи пупкина, который не такой как все? тогда согласен: ЭТА индустрия любит фреймворки.

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

если уж следовать моей аналогии, то давится дошираком (универсальной жрачкой) я не предлагал. А как раз наоборот.

Ну и до кучи, CL целиком и полностью проигнорировал visual-ООП-волну середины 90-х.

ну и что в этом плохого? эту волну все проигнорировали, кроме толпы идиотов, которые узнали, что ВНЕЗАПНО написать программу может любой идиот, достаточно натаскать мышкой кнопочек, и скопипастить каждой кнопочке пару строчек из учебника «VisualC++ за 5 минут». Проблема только в одном: такие «программы» никому не нужны, в т.ч. и их создателям. Ну а уж про то, что это никак не относится к ООП я вообще промолчу - не поймёшь.

drBatty ★★
()
Ответ на: комментарий от drBatty

ЭТА индустрия любит фреймворки.

А среда JVM и .NET - это, значит, уже не фреймворки?

ну и что в этом плохого?

Возьмем Паскаль и Бейсик. Маргинальнее язычков на тот момент придумать было сложно. Сначала две «одаренные» конторы запилили уютненькую ИДЕшечку, затем наступила эпоха этих-самых визуал пыщ-пыщ. И что же? Сейчас каждый из этих язычков значительно меньше маргинален чем CL. Хотя от первого, автор высирает кирпичи, ибо он его лично выбросил на свалку истории, а второй в процессе своей «эволюции» настолько сильно мутировал, что от оригинальной идеи осталось только название.

А кто в этом виноват? Правильно! Визуал-ООП-волна.

Macil ★★★★★
()
Ответ на: комментарий от drBatty

Когда я последний раз смотрел код емакса, там все было в итеративном стиле. Единственная программа на лиспе, которой я пользовался.

Legioner ★★★★★
()
Ответ на: комментарий от aptyp

Потому что в свое время мой незрелый ум поразило метапрограммирование в лиспе и идея того, что высокоуровневый код и данные могут представляться одними и теми же структурами. Я правда до сих пор не понял, как извлекать из этого профит, метапрограммирование очень редко сильно облегчает жизнь, и в этих редких случаях можно написать банальный текстовый кодогенератор, если не хватает средств метапрограммирования, но тем не менее концепция клёвая.

Legioner ★★★★★
()
Ответ на: комментарий от Macil

А среда JVM и .NET - это, значит, уже не фреймворки?

УЖЕ фреймворки ИМХО. Вы так говорите, как будто-бы в этом есть что-то хорошее...

Возьмем Паскаль и Бейсик. Маргинальнее язычков на тот момент придумать было сложно. Сначала две «одаренные» конторы запилили уютненькую ИДЕшечку, затем наступила эпоха этих-самых визуал пыщ-пыщ. И что же? Сейчас каждый из этих язычков значительно меньше маргинален чем CL

некорректно сравнивать давно мёртвые паскакал и бэйсик с до сих пор живым CL. Лучше быть живым бомжом, чем мёртвым Президентом.

Хотя от первого, автор высирает кирпичи, ибо он его лично выбросил на свалку истории

насколько я знаю, аффтор заменил свой паскакал на другие ЯП (которые тоже не нужны).

а второй в процессе своей «эволюции» настолько сильно мутировал, что от оригинальной идеи осталось только название.

это ты про высер мысы под названием VBS? Насколько я понял, там от бэйсика осталась только одна буква, и то - в названии. В таком случае, C++ примой предок BrainFuCk'а.

А кто в этом виноват? Правильно! Визуал-ООП-волна.

ну к любой «волне» всегда кто-то подмазывался, и мало того, 95% тех, кто «в тренде», на самом деле, никакого отношения к этой волне не имеют.

drBatty ★★
()
Ответ на: комментарий от Legioner

Когда я последний раз смотрел код емакса, там все было в итеративном стиле. Единственная программа на лиспе, которой я пользовался.

я не слишком понимаю, какой смысл в импративном лиспе? Создатели этого вашего емакса возможно SICP не осилили?

drBatty ★★
()
Ответ на: комментарий от drBatty

я не слишком понимаю, какой смысл в импративном лиспе? Создатели этого вашего емакса возможно SICP не осилили?

лисп — он как пластилин — лепи что хочешь, и как хочешь, никто с калашом сзади стоять не будет.

gensym ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.