LINUX.ORG.RU
Ответ на: комментарий от Norgat

Понятное дело, это очевидно. Но если хорошо реализовать ФП, то подобное будет так же красиво записано через функции высшего порядка. Вообще в C# есть это и потому надо этим пользоваться. А они обычно дублируют фичи для маркетинга. Чего только стоит using, который освобождает ресурсы. При этом это ключевое слово пишется на Scala парой классов.

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

> Угодай под «свежими и оригинальными» явно имел в виду те идеи, которые были обкатаны в лиспе ещё десятки лет назад, а теперь преподносятся как откровение свыше. За примерами далеко ходить не надо --- достаточно вспомнить лямбды в новом стандарте С++ и далёкие планы по реализации mop и продолжений в яве

Продолжения из Симулы. Лисперы утянули их вместе с объектами из Смоллтолка :)

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

> Продолжения из Симулы.

Вообще-то, в CL продолжений просто нет )

Лисперы утянули их вместе с объектами из Смоллтолка


Сюрприз, в CL объектная модель сильно другая. Было несколько попыток добавить к лиспу ООП в стиле Smalltalk, но ничего хорошего из этого не вышло, так что в итоге родился CLOS.

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

>Фичи которого в других языка в полном объёме не реализованы до сих пор

А оно надо? если он такой уникальный то почему windows 8 пишут не на лиспе и ни для андроида ни для iOS лиспа нет?

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

> почему windows 8 пишут не на лиспе

Кстати, некоторые компоненты визуал студио одно время (году этак в 2005) были написаны на CL. Что там было дальше не в курсе. А что, вы считаете что это могло бы спасти винды? ИМХО, вряд ли, там проблема не в языке.

ни для андроида ни для iOS лиспа нет?


Серьёзно?

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

> Было несколько попыток добавить к лиспу ООП в стиле Smalltalk, но ничего хорошего из этого не вышло

Можешь рассказать об этих попытках и причинах их неудачи поподробнее? Лично мне Smalltalk-style ООП нравится, было бы интересно узнать, почему оно не прижилось в CL.

anonymous
()

[python]Посоветуйте учебник по Python.

Ещё один тред в котором питон совершенно скатился в ср^W лисп :)

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

С самого начала. Для кого это плюс, а для кого - минус. Для десктопа явный минус. Для сервера, может, и плюс.

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

> а нужна найтивная скала,

Неплохо бы.

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

А что, сборка мусора является плюшкой виртуальной машины? Пичалька.

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

Весело и в картинках! То, что нужно, спасибо.

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

>Для кого это плюс, а для кого - минус. Для десктопа явный минус.

можно и в другой вм запускать скалу, а не только в jvm

Karapuz ★★★★★
()

Я посмотрел на весь этот языковый срач. Делаю правильный вывод: чтобы не быть быдлокодером, нужно одновременно учить питон, с++ и лисп. Упражнения выполнять сразу на трех языках, не важно, сколько на это уйдет времени. Эти знания окупятся. Быдлокодер - бесполезный человек в нашем обществе. Лучше потратить в два раза больше времени и выучить сразу три языка, стать реальным программистом.

У меня есть далекая мечта, возможно не сбудется. Буду учить Лисп с целью дописывать Maxima, c++ с целью дописывать wxMaxima, питон с целью добавить численную мощь в wxMaxima и дать ей возможность писать пользовательские макросы. Возможно, форкну проект. А пока я просто пишу в Latex статьи про высшую математику в Maxima. По крайней мере это у меня неплохо получается.

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

Делаю правильный вывод…

Неправильный вывод. Подумай еще.

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

> чтобы не быть быдлокодером, нужно одновременно учить питон, с++ и лисп

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

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

Качественный, полезный и функциональный программный продукт на одном языке очень трудно написать. Чем больше инструментов знаешь, тем лучше работаешь. Я это понял, когда выучил русский, английский, и немного немецкий. Понял, когда заново и как следует выучил разные темы высшей математики. Четыре года назад я не так плохо программировал на ассемблере по MSDOS и C под него же, потом увлекся Gambas, но вовремя бросил. Теперь читаю книги по Python. Лисп не знаю, но Maxima сейчас - моя любимая программа, поэтому, нужно учить.

Ziel
()

Если нужно могу выложить
Программирование на Python 3. Подробное руководство. Марк Саммерфилд.+Исходники примеров.
Есть задачи для самработы.

Сам начал читать. Все времени не хватает. Вроде бы ничего книжка.

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

> Чем больше инструментов знаешь, тем лучше работаешь. Я это понял, когда выучил русский, английский, и немного немецкий.

Если нужна аналогия с языками, изволь: «Меня часто спрашивают - как писать хорошие программы на Си++? Ответов два: 1) подражайте хорошему стилю; 2) практикуйтесь» (с) Б.Страуструп. Знание нескольких языков вообще не причем.

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

>Меня часто спрашивают - как писать хорошие программы на Си++? Ответов два

Здесь спрашивают, как писать хорошие программы на единственном языке - С++, и с ответом я согласен.

Я имел в виду программные продукты. Например, wxMaxima написана на двух языках - Лисп и С++. Если встроить в нее интерпретатор питона для написания пользовательских макросов, получится вообще классная вещь. Языков нужно сразу несколько.

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

> (с) Б.Страуструп. Знание нескольких языков вообще не причем.

Другой, не менее уважаемый специалист, говорит, однако, другое:

Изучите по крайней мере полдюжины языков программирования. Включите в это число по одному языку из тех, которые поддерживают абстракцию классов (Java или C++), функциональную абстракцию (Lisp или ML), синтаксическую абстракцию (Lisp), декларативные спецификации (Prolog или шаблоны C++), сопрограммы (Icon или Scheme) и параллелизм (Sisal).

Питер Норвиг

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

> Здесь спрашивают, как писать хорошие программы на единственном языке - С++, и с ответом я согласен.

На самом деле, я упустил одну фразу. Полная цитата примерно такова: «Меня часто спрашивают - как писать хорошие программы на Си++? Этот вопрос сродни вопросу 'как писать хорошую английскую прозу?'. Ответов два: 1) подражайте хорошему стилю; 2) практикуйтесь» (с) Б.Страуструп

Здесь спрашивают, как писать хорошие программы на единственном языке - С++

А ответ - просто о том, как писать хорошие программы. Потому что ответ не зависит от языка - вместо «Си++» там мог быть «PL/I», и смысл не изменился бы. Ответ даже не зависит от того, программы ты собираешься писать или прозу :)

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

> Другой, не менее уважаемый специалист, говорит, однако, другое:

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

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

>Не говоря о том, что ты с чего-то решил, что веб-приложения на питоне не дебажатся.

Ухты блин.. А я целый день видимо на другой планете был.

Питоновский core - вообще весь процедурный, начиная от len(p_object) и заканчивая open(name, mode=None, buffering=None). Скажите мне пожалуйста, это методы какого класса? А, да, и конструкции вида (результат_1 if условие else результат два) - просто тихий ужас. А идиотизм с elif? Зачем это все? Есть же принятые удобные нотации ветвлений, придуманные еще в си.

Бритва Оккама не? Нафиг тебе класс если хватит функции?

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

>А это сообщение наверное макском написал.

Не ты не понял, это его IDE заполнила... Java программист без IDE жить не может. Я когда говорю, что пишу в GEdit у них шок...

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

>Питоновский core - вообще весь процедурный, начиная от len(p_object) и заканчивая open(name, mode=None, buffering=None). Скажите мне пожалуйста, это методы какого класса? А, да, и конструкции вида (результат_1 if условие else результат два) - просто тихий ужас. А идиотизм с elif? Зачем это все? Есть же принятые удобные нотации ветвлений, придуманные еще в си.

Как это «какого класса»? Второе, например, метод класса io. А конструкции (результат_1 if условие else результат_2) офигенно читабельные и простые по сравнению с (условие ? результат_1 : результат_2), и с этим никто спорить в здравом уме не будет.

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

... Питон - это какая-то дикая смесь паскаля...

Вы что-то путаете.
Процедура суть подпрограмма: она что-то делает, но ничего но возвращает.
А len и open это функции, возвращающие длину переданного об'екта и файловый об'ект соответственно.
При этом len на самом деле обращается к специальному методу __len__ об'екта и является просто удобной абстракцией.
В Python много где встречается такой подход, в этом фишка языка.
Если уж язык мультипарадигменный, то неплохо бы чтобы в нём эти парадигы естественно использовались. Где удобны функции - используются функции, где классы - классы.
Раньше кстати, ЕМНИП, int и другие типы были функциями, создававшими об'екты встроенных типов, теперь это типы, при этом запись создания об'екта типа не изменилась(«int()»), соответственно и совместимость не похериласью. Утиная типизация, все дела. Это ли не пример хорошего дизайна языка?

конструкции вида (результат_1 if условие else результат два)


Это как раз удачный компромисс: не добавлено ни одного нового кейворда или операторного символа в синтаксис языка и достаточно легко воспринимается.

P.S.: где в Python паскаль-то можно было углядеть?

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

Вы меня путаете с тем кого я цитирую. Он просто идиот. Ему статические методы изжогу вызывают. .NET головного мозга. Рекомендую термин - диагноз мозга .НЕТ

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

> Вы путаете парадигмы ООП. Но очень похоже к практике.

Не понял про «парадигмы ООП». И вообще не понял. Можно пояснить? :)

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

Короче там мужик возмущался, что мол Пайтон не ООП. Я и говорю, что хочешь так, хочешь так. а является, ли len дефакто вызовом __len__ это уже дизайн. И к парадигмам никакого отношения не имеет. Дизайн клевый да. Мне нравится.

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

Чтобы не быть быдлокодером, нужно всего лишь любить свое ремесло...

..настолько, чтобы постоянно быть в развитии.

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