LINUX.ORG.RU

Какие ЯП вас в своё время впечатлили и чем?

 


6

3

С кратким комментарием — что именно произвело впечатление. Вот меня, например, в следующем порядке поразили:

1) Haskell в институте — системой типов, по сравнению с другими языками казалось неземной красотой, что можно написать всякие Show a, Num a.

2) Prolog тоже в институте — первый опыт настоящей декларативности — пишешь не то, что нужно делать, а что нужно получить и доступные для этого действия. Описал задачу, а система сама все решила.

3) Forth — тем, что самый мощный язык может быть написан в несколько сотен строк.

4) Io и Lua — Io чистотой и элегантностью концепции, а Lua тем, что интерпретатор мощного (на уровне JS) и простого языка может ещё и быстро работать.

5) Lisp — дата-код-дата, полноценная среда для вычислений в компайл-тайме и рантайме.

Ну и по-мелочи:

1) Python — 2D-синтаксисом.

2) colorForth — цветной синтаксис.

3) Katahdin — тем, что можно не очень сложно объединить кучу языков под крышей одного рантайма в пределах одного файла или строки.

4) D — тем, что из C++, в принципе, мог получиться нормальный язык.

5) Pascal ещё в школе, тем что можно было работать с динамической памятью, использовать арифметику указателей и вообще все эти двусвязные списки и т.п.

Может потом ещё что вспомню...



Последнее исправление: y-combinator (всего исправлений: 3)

LISP — примитивным синтаксисом; тысячами функций в корневом namespace; при этом, отсутствием в стандартной библиотеке таких базовых вещей как thread'ы (и это при том, что языку больше 50 лет); разрозненными неподдерживаемыми поделками вместо качественных библиотек; «метапрограммированием», которое преподносится как нечто исключительное, а на самом деле является скорее инструментом для запутывания кода и создания иллюзии элитизма пишущего, нежели для эффективного решения практических задач;

Haskell — двадцатью способами посчитать факториал; необходимостью скуривания мегатонн пейперов по теоркату в случае, если решаемая проблема чуть посложнее вычисления факториала; позиционированием в качестве «практического языка» при полной академичности несовместимости с real-world проблемами; костыли для компенсации этой несовместимости, выдаваемые за элегантное решение («Что не так? Монада — это всего лишь моноид в категории эндофункторов!»)

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

Вообще, испытывать подобные эмоции («поразили», «впечатлили») в адрес рабочих инструментов — удел не практиков, но фанбоев и сектантов. Это все равно что сказать: «меня в свое время впечатлили молоток, бензопила и особенно электродрель». Профессионал не впечатляется и не воздает хвалы, он изучает инструмент, его сильные и слабые стороны, и оттачивает мастерство владения инструментом.

А не фапает на инструмент, как большинство здесь отписавшихся.

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

Компилятор страшно тормозящий и способен работать только постоянно вися в памяти. IDE подчеркивает часто когда ошибки нет.

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

Вообще, испытывать подобные эмоции («поразили», «впечатлили») в адрес рабочих инструментов — удел не практиков, но фанбоев и сектантов.

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

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

...и изучает искусство каллиграфии.

А не фапает на инструмент, как большинство здесь отписавшихся.

Д`Артаньян в треде!

anonymous
()
Ответ на: комментарий от y-combinator

неправильно значит объясняли... раз вопрос такой мог возникнуть... :(

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

По поводу IDE - его вроде улучшают...

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

Всё-таки компилятор у скалы довольно умный. много работы делает. потому и тормозит.

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

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

Ну так чего же ты тут забыл то? Иди дальше пиши на своей практичной жабе. Мне твои проповеди не нужны, и не указывай, что мне делать.

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

тремя регистрами процессора, принципиальным отсутствием у него операций mul/div и при этом более чем десятком способов адресации памяти (по сути RISC);

Вообще-то RISC - это когда есть ровно ОДИН способ адресации памяти, и никто кроме инструкций load и store ничего с памятью делать не может.

anonymous
()
Ответ на: комментарий от Bad_ptr

Ты еще на Malbolge посмотри, он еще круче.

anonymous
()
Ответ на: комментарий от mv

Потому что не начал с ассемблера.

Я вообще убежден, что все программисты должны начинать с Verilog-а или VHDL, строить в процессе обучения собственную маленькую SoC, писать для нее ассемблер и компилятор языка высокого уровня. После этого указатели в Си будут простой и понятной концепцией.

anonymous
()
Ответ на: комментарий от templarrr

Паскаль и пролог своей абсолютной убогостью.

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

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

Я отстал от жизни :( или сильно промахнулся с вузом. Нас учили только паскалю и C почуть...

Некоторые так и вовсе с годом рождения промахнулись. Я только Фортран учил в ВУЗе.

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

Haskell — двадцатью способами посчитать факториал;

Ты Хаскелля, считай, и не видел. Там не двадцать способов, там их сотни. И еще сотни способов посчитать числа Фибоначчи. Правда, ничего другого на этом языке сделать нельзя, но ты уж не умаляй его заслуг в вычислении факториала, зачем убогих-то обижать?

Почитай, тут смешно: http://www.willamette.edu/~fruehr/haskell/evolution.html

«меня в свое время впечатлили молоток, бензопила и особенно электродрель»

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

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

Тебе обязательно нужно прочитать Судзуки Тантаро «Дзен и фехтование».

anonymous
()

На первом курсе удивил Perl. До этого писал только на C, Pascal, Basic (Q и Visual). Именно на Perl написал свои первые нормальные программы (не чисто учебные, а прикладные), скриптовал систему, в том числе благодаря ему перешёл на Linux. С тех пор сильно удивляться не приходилось :)

helios ★★★★★
()

С++ - тем, что в нем уживается низкоуровневость С и зайчатки ООП, шаблоны и пр., с тех пор мечтаю о более прямом ЯП с такими же особенностями, D, к сожалению, не торт

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

Ну так чего же ты тут забыл то? Иди дальше пиши на своей практичной жабе. Мне твои проповеди не нужны, и не указывай, что мне делать.

Ты не понял, моя реплика не была обращена к тебе.

Потому что нет смысла лечить сектантов.

anonymous
()

Слышал, что Ассемблер и C - крутые языки, а когда стал их изучать после Турбо-Паскаля - произошел разрыв шаблона:

Ассемблер - когда увидел в первый раз - вообще офигевал, как можно на ЭТОМ хоть что-то писать. Еще большее удивление вызывало то, что ведь пишут же (дело было во времена ДОС).

C - оказалось, что это тот же кросс-платформенный ассемблер, в котором нет даже операции сравнения строк.

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

C - оказалось, что это тот же кросс-платформенный ассемблер, в котором нет даже операции сравнения строк.

А строки - это что? Форма записи массивов, присыпанная сахаром?

mv ★★★★★
()

Pascal — тем, что надо было ставить в конце программы точку;

Haskell — каррингом и навороченной системой типов;

Eiffel — более красивого ЯП не видел. Жаль, что непопулярен;

Lisp — притягательным уродством, как экспонаты в Кунсткамере;

Java — тем, что более смелой и амбициозной задумки в мире ЯП не было и не будет. И пусть получилось не всё, но масштабность, охват и качество результатов работы Sun поражают.

CARS ★★★★
()

Javascript впечатлил отсутствием отдельного интерпретатора или компилятора - первые строки писал прямо в опере, открывая вторую вкладку с кодом страницы по Ctrl+U.

Он же впечатлил лёгкостью создания анимаций, подробной диагностикой в консоли ошибок.

Ещё нравится его идея общего контекста (объект window), доступного из любой точки и затрагивающего только одну владку без всяких пересечений. Давно хочу замутить подобное на C++ с помощью thread local storage.

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

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

Говнолисп в те времена за пределы своих убогих резерваций не вылезал, а Фортран применялся повсеместно.

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

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

У литерала null тип Object. Для Object не определено неявное преобразование к int, естественно. Но такое преобразование определено для Integer, и это не баг, это фича. Boxed типы и должны преобразовываться туда и обратно неявно, иначе в них просто не было бы смысла.

А поскольку Integer это Object, инициализировать null-ом его можно.

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

anonymous
()

после паскаля и zx spectrum бейсика на первом курсе универа С удивил таким копированием строк:

while (*a++ = *b++);

ада удивила жёсткосью системы типов.

erlang - как может не удивить язык без переменных и циклов? хвостовая рекурсия с аккумуляторами сломала мозг.

nanoolinux ★★★★
()

Python. Там отступы в качестве элементов синтаксиса выступают xDDDDDD

Lorchanin
()
Ответ на: комментарий от gensym

Лол, эка тебе припекло, скобчатый. Видать, в самую мякотку попало.

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

И тебе бомбануло будь здоров. Дай угадаю: тоже петушок скобчатый? Или зигоморфист?

anonymous
()
Ответ на: комментарий от quiet_readonly

А я - за дружбу.

Вы мне предлагаете дружить с сектантами? How about NO.

В треде какие-то склочные анонимусы завелись

Макнуть сектанта в говнецо — это разве склочность?

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

Это ты тут против Java вонял, или кто другой?

Но-но-но, сударь. Не надо грязи! Ваш покорный слуга — приверженец практических технологий (среди каковых и Java), а не упорото-сектантского академического говна.

anonymous
()
Ответ на: комментарий от ak376067

Common Lisp - наглухо утилитарный язык
классический Scheme - нет.
Racket?

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

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

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

Возможно, это потому, что Вы не тянете как профессионал в программировании. Отсюда иллюзия сложности, запутанности и ненужности. А жизнь-то - штука реально непростая и «практические задачи» разные приходится решать.

А не фапает на инструмент, как большинство здесь отписавшихся.

А оно не фапает. Оно просто кайфует от профессии и, в частности, от инструментов этой профессии.

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

Отсюда иллюзия сложности, запутанности и ненужности. А жизнь-то - штука реально непростая и «практические задачи» разные приходится решать.

Как может быть «иллюзия» ненужности? Ненужность - понятие абсолютно объективное. Идешь на hh.ru, и считаешь нужность любой технологии, элементарно.

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

Ты Паскаль-то на одну доску с говнопрологом не ставь.

А ему что, надо было два раздельных поста написать? Просто перечислил в одном предложении...

ak376067
()
Ответ на: комментарий от anonymous

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

Существенно меньше веществ и не будет напоминать.

ak376067
()
Ответ на: комментарий от anonymous

Идешь на hh.ru, и считаешь нужность любой технологии, элементарно.

Бедненький. Ты работку себе только так можешь искать. На hh.ru. Скриптик для подсчета нужности еще не набросал?

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

Racket?

Не пробовал, но может быть. Помимо утилитарности в продакшене ещё и железобетонная надёжность нужна, типа как у LispWorks.

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