1.8, bav (?), 15:59, 24/02/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Годы идут, а java, как язык, всё никак не может стать удобным. В принципе, модным парням этого и не надо, у них есть скала, кложура и груви. Но вывод типов и нормальные лямбды хотелось бы увидеть хотя бы к девятой версии.
| |
|
2.12, iZEN (ok), 16:07, 24/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Но вывод типов и нормальные лямбды хотелось бы увидеть хотя бы к девятой версии.
А зачем смешивать императивное и функциональное программирование, статическую типизацию с динамической в одном языке? Когнитивный диссонанс не случится?
| |
|
3.13, bav (?), 16:12, 24/02/2011 [^] [^^] [^^^] [ответить]
| +2 +/– |
> А зачем смешивать императивное и функциональное программирование
От нынешних анонимных классов, java не становится императивнее.
> статическую типизацию с динамической
Ничего не путаешь? Ключевые слова: вывод типов, ocaml, haskell.
| |
|
4.24, iZEN (ok), 16:43, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>> А зачем смешивать императивное и функциональное программирование
> От нынешних анонимных классов, java не становится императивнее.
Зато является более декларативной.
>> статическую типизацию с динамической
> Ничего не путаешь? Ключевые слова: вывод типов, ocaml, haskell.
Не распарсил. Что это такое? Практический пример приведёте?
| |
|
5.26, pavlinux (ok), 17:44, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
Куда русский язык катится...
Императивное и функциональное программирование.
Статическая типизация. Когнитивный диссонанс.
Императивная декларативность. Лексические переменные.
Слабо всё это на русский перевести, варианта до 1699 года?
| |
|
6.29, Okruzhor (ok), 18:10, 24/02/2011 [^] [^^] [^^^] [ответить]
| +20 +/– |
> Куда русский язык катится...
> Императивное и функциональное программирование.
> Статическая типизация. Когнитивный диссонанс.
> Императивная декларативность. Лексические переменные.
> Слабо всё это на русский перевести, варианта до 1699 года?
Приказное и отображательное предписание.
Предварительное клеймение. Мыслительная запинка.
Приказное глашатайство. Словесные переменные.
"Идёт хорошилище по гульбищу на позорище в мокроступах"
| |
|
7.58, netch (ok), 12:12, 28/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Приказное и отображательное предписание.
Предписание - это программа. А тут будет или предписательство, или предписательственное вразумление.
> Предварительное клеймение.
:)
Слава богу, у нас не иврит:)
| |
|
6.36, Marbleless (?), 20:22, 24/02/2011 [^] [^^] [^^^] [ответить]
| +3 +/– |
>Слабо всё это на русский перевести, варианта до 1699 года?
Да, сейчас найду книгу "Издание указовъ для машинъ считальныхъ", посмотрю, какие там термины.
| |
|
5.48, bav (?), 00:13, 25/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Зато является более декларативной.
OMG, с каких это пор куча синтаксического мусора стала более декларативной?
> Не распарсил. Что это такое? Практический пример приведёте?
Тогда повторюсь, какой такой диссонанс может быть в джаве от вывода типов? По мне так вполне логичный этап развития языка со статической типизацией.
| |
|
|
3.52, amonym (?), 14:07, 25/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>А зачем смешивать императивное и функциональное программирование,
Затем же зачем Вы смешиваете язык программирования и P машину.
Если вы не поняли то, поясняю - в спецификации jvm добавлена возможность, позволяющая запускать программы сделанные на других языках программирования (не java).
| |
|
2.14, Валерий (??), 16:15, 24/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
Нормальные лямбды я видел только в CL. В большинстве остальных языков они если есть, то убогие.
С нормальными лямбдами должны быть лексические и динамические переменные, например.
| |
|
3.17, bav (?), 16:21, 24/02/2011 [^] [^^] [^^^] [ответить]
| +4 +/– |
> В большинстве остальных языков они если есть, то убогие.
От них требуются только две вещи:
1) Лексическое замыкание
2) Быть first-class value
Всё остальное маргинальщина и нужна только полутора лисперам.
| |
|
4.23, iZEN (ok), 16:41, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>1) Лексическое замыкание
Какие варианты использования этого?
>2) Быть first-class value
Это что такое и зачем нужно?
| |
|
|
|
7.41, Marbleless (?), 21:26, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>Всю жизнь пользовался этим в Java, оказывается "этого в ней нет". :))
Что, там есть полноценные замыкания? Имеющие доступ к локальным переменным? Безо всяких дополнительных костылей? Сколько на Жабе не пишу, а не знал.
>Объект типа Class или типа Field или типа Method в Java это разве не то?
Это примерно то же, но:
1.Через отражение, т.е. механизм, который предназначен для отладки или других технических вещей, в отличие от языков с полной поддержкой функций как объектов первого класса, где это используют на каждом шагу.
2.Соответственно, доступны только если сначала определить класс, потом сделать к нему метод, а потом через отражение получить объект класса метод. Определить функцию внутри другой (пусть даже если бы она не была бы привязана к контексту, а только к полям объекта, пусть даже если бы и вообще должна была обращаться только к переменным, переданным при создании) не получится.
Конечно, можно создать анонимный класс и его же отразить. Это будет костыль, подпертый другим костылем.
3.Соответственно, синтаксис получается сложный и с типизацией придется колдовать.
Настоящей first-class function было бы нечто такое:
public static void main(String[] args) {
function printstr = new function(String x) {
System.out.println(x);
}
printstr("Hello, world!");
}
| |
|
8.55, iZEN (ok), 19:37, 25/02/2011 [^] [^^] [^^^] [ответить] | +/– | Какие костыли class CalculationWindow extends JFrame private JButton btn... текст свёрнут, показать | |
|
7.42, filosofem (ok), 21:38, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>Чего-то там пространно объяснено.
>Объект типа Class или типа Field или типа Method в Java это разве не то?
Имелось в виду, что объектом первого класса должна быть функция. Ссылку вам не ту дали, читать здесь
http://en.wikipedia.org/wiki/First-class_function
Конечно можно и на Джаве многое имитировать, и замыкания и функции первого класса. Но есть нюанс: данные концепты вводились для упрощения написания и понимания кода, а в случае имитации получается все равно громоздко обычно.
| |
|
|
|
|
3.30, Анон (?), 18:28, 24/02/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
По мне так лямбды - это пережиток становления ООП. Все примеры что я натыкался (скажем, в SICP) более грамотно реализуются через объекты. А объекты в свою очередь - можно хоть на С через указатель на контекст передвать - элегантно, лакончино и просто.
Так что не понимаю откуда столько фанбойского визга про эти замыкания. Хотя замечу, что я особо в функциональщину не погружался и в своё время поддался на совращение господином Страуструбом.
| |
|
4.33, umbr (ok), 19:58, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
>фанбойского визга
Тут главное повизжать ("Смотрите, какой я умный"), неважно о чём.
| |
4.43, Stax (ok), 22:01, 24/02/2011 [^] [^^] [^^^] [ответить]
| +2 +/– |
В ООП обычно не получается "элегантно, лаконично и просто" писать код, который работает со различными структурами, но при этом должен выполнятся лениво (в результирующей структуре вычисляться по мере обращения к соответствующему элементу). С помощью функциональных конструкций сделать так, чтобы все с одной стороны выглядело очень просто и код писался, как просто работающий с данными, но вычислялся лениво - проще простого. Простота и ускорение в одном флаконе, причем применимо это практически везде.
| |
|
5.49, Анон (?), 04:22, 25/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
Конкретные примеры где это лучше ООП? По мне так можно вызвать метод объекта по необходимости. То что "как просто работающий с данными" мне опять таки не ясно зачем это нужно и почему в SICP на это так дико фапали. По мне так гораздо логичнее и правильнее чётко разделять данные и функции. Вообщем не понимаю я профита от этого всего.
| |
|
4.47, bav (?), 00:06, 25/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
> По мне так лямбды - это пережиток становления ООП
Студент? Торба ООП уже давно облезла и прохудилась, а вы с ней всё носитесь. Расширяй кругозор, мой тебе совет.
| |
|
|
|
1.10, Аноним (-), 16:04, 24/02/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Не, ну не козлы ли? Знай себе выпускают закрытую версию с отмазами "мы используем некоторые закрытые библиотеки, так что..", предлагая трудиться над переписыванием сложных (иначе не пришлось бы использовать сторонные технологии) проекту IcedTea. Т.е. оракл будет просто выпускать то, что ему нравится, а в это время редхату с эпплом предлагается молча вбухивать кучу денег в развитие IcedTea, а кому-то из сторонних разработчиков и нахаляву трудиться, чтобы сделать джаву немного посвободнее?
Нормальная такая позиция, "жрите то, что вам сан в свое время открыл, а мы будем выпускать то, что нам требуется под брендом "Java", а вы трудитесь, может когда-нибудь и доползете до нашего уровня со своими открытыми технологиями".
http://open.cnews.ru/news/top/index.shtml?2010/11/09/415237 <-- как в свое время путь развития джавы в оракле разошелся с мнением сообщества, так раскол продолжается глубже и глубже.. На мнение ASF при выпуске Java 7 они уже положили..
| |
|
2.16, Аноним (-), 16:21, 24/02/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
Я просто разрываюсь - что же лучше в новом свете - OpenJDK или Mono???
| |
|
|
4.25, Аноним (-), 17:06, 24/02/2011 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Если ты такой нервный - используй С++
Ну я уже. Но при этом восхищаюсь Java и тем более C#. Для обоих есть православные GPLные реализации, а потому выбрать крайне сложно - за обоими стоят очень серьезные аргументы и области применения.
| |
|
5.28, Аноним (-), 17:55, 24/02/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
Чем там восхищаться? Весь этот сонм недоязычков от жавы с шаром до питона не умеет банальную компиляцию в нативный код, следовательно обречены тормозить и жрать память. А так называемый "портабельный байткод" поощряет наплевательски относиться к доступности исходников и сборочным системам, а то и вообще не выкладывать исходники, анонсируя при этом что распространяется "под gpl".
| |
|
6.32, Tiv (ok), 19:32, 24/02/2011 [^] [^^] [^^^] [ответить]
| –1 +/– |
re> Весь этот сонм недоязычков от жавы с шаром до питона не умеет банальную компиляцию в нативный код, следовательно обречены тормозить и жрать память.
Откидывая реплики про "сомнительность" нужно уточнить
1. Большенство JVM имеют JIT так что код более чем найтивный получается
2. У тех, кто не умеет JIT, например встроенная в RDBMS Oracle JVM версии ниже 11.1 встречаются штуки типа Oracle JAccelerator он же Java NCOMP. Данная штука превращает class файлы в .c файлы и собирает из них .so/.dll. .c aайлы можно посмотреть.
re> А так называемый "портабельный байткод" поощряет наплевательски относиться к доступности исходников и сборочным системам, а то и вообще не выкладывать исходники, анонсируя при этом что распространяется "под gpl".
Каким образом?
Ну и конечно самый портабельный и надежный код просто обязан содержать что то типа
# ifdef NETWARE
# else
# ifdef FAKE_THREADS
# else
# ifdef WIN32
# else
# ifdef OS2
# else
# ifdef I_MACH_CTHREADS
# if (defined(NeXT) || defined(__NeXT__))
# endif
# else /* Posix threads */
# ifdef I_PTHREAD
# endif
# endif /* I_MACH_CTHREADS */
# endif /* OS2 */
# endif /* WIN32 */
# endif /* FAKE_THREADS */
#endif /* NETWARE */
#endif /* USE_5005THREADS || USE_ITHREADS */
Тут про сборку заботятся обязательно:)
| |
|
|
Часть нити удалена модератором |
8.45, Ytch (?), 23:04, 24/02/2011 [^] [^^] [^^^] [ответить] | +1 +/– | Первая же фраза в заметках по ссылке Для запуска Ngen exe необходимо обладать ... текст свёрнут, показать | |
|
|
6.46, rip (??), 23:30, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Чем там восхищаться? Весь этот сонм недоязычков от жавы с шаром до питона не умеет банальную компиляцию в нативный код, следовательно обречены тормозить и жрать память. А так называемый "портабельный байткод" поощряет наплевательски относиться к доступности исходников и сборочным системам, а то и вообще не выкладывать исходники, анонсируя при этом что распространяется "под gpl".
Все вышеперечисленное вызывает улыбку. Начиная от искажения действительности с точностью до наперекосяк, до необоснованных претензий. Ну и конечно же абсолютное отсутствие опыта работы с этими платформами, и полное непонимание причин появления этих платформ и какие восхитительные профиты они дают.
| |
|
|
|
|
2.21, uZver (??), 16:38, 24/02/2011 [^] [^^] [^^^] [ответить]
| +3 +/– |
>[оверквотинг удален]
> "мы используем некоторые закрытые библиотеки, так что..", предлагая трудиться над переписыванием
> сложных (иначе не пришлось бы использовать сторонные технологии) проекту IcedTea. Т.е.
> оракл будет просто выпускать то, что ему нравится, а в это
> время редхату с эпплом предлагается молча вбухивать кучу денег в развитие
> IcedTea, а кому-то из сторонних разработчиков и нахаляву трудиться, чтобы сделать
> джаву немного посвободнее?
> Нормальная такая позиция, "жрите то, что вам сан в свое время открыл,
> а мы будем выпускать то, что нам требуется под брендом "Java",
> а вы трудитесь, может когда-нибудь и доползете до нашего уровня со
> своими открытыми технологиями".
Apple вкладывается в развитие OpenJDK и вливает туда свой код. А проприетарная сборка java была и у Sun. Ничего пока не поменялось.
Только Sun обещала сделать Java 7 полностью открытой. Oracle такого обещания не давал.
| |
2.22, Stocker (?), 16:40, 24/02/2011 [^] [^^] [^^^] [ответить]
| –3 +/– |
Ахренеть, заплатили 9 с половиной миллиардов и не выдали всё тут же анонимусу нахаляву. Планета в шоке.
| |
|
1.18, KDE (??), 16:26, 24/02/2011 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
чую не будет единого стандарта JDK != OpenJDK и чем дальше тем больше...
и спор ORACLE vs GOOGLE тому подтверждение
диалекты Java
| |
|
2.27, bvf (ok), 17:53, 24/02/2011 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не паникуйте. Сделайте глубокий вдох и успокойтесь. ТО что разные имплементации ява машины имеют свои особенности никого никогда не смущало. Но есть неизменное и единое ядро которое одинаково работает у всех. У ИБМ есть своя очень сильно отличающаяся ява, но однако она очень интенсивно используется. Сущетсвует более десятков разных неодинаковых ява машин, и что? Сановская ява дефакто стандарт. В OpenJDK весь код будет соответствовать оракловской яве за исключением тех частей на которые патенты принадлежат другим компаниям и которые ораклы не могут открыть так как нарушат патенты третьих фирм. В чем паника? Дышите спокойнее.
| |
|
3.31, oops_ (?), 19:21, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
и все это только для того, чтобы не развивать компонентный Паскаль.
| |
|
4.35, bvf (ok), 20:22, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
> и все это только для того, чтобы не развивать компонентный Паскаль.
freepascal вполне себе развивается. а вообще ява была разработана под сильным влиянием оберона. Паскаль вообще-то принадлежит Вирту вот он его и развивает.
Я сам люблю кодить нативные форточки в лазарусе, но с явой это даже сравнивать невозможно. Язык вторичен, платфома намного важнее.
| |
|
5.44, Аноним (-), 23:00, 24/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Паскаль вообще-то принадлежит Вирту вот он его и развивает.
Насколько я знаю, он давно и прочно забил на Паскаль, обнаружив в нем столько недостатков, что просто создал новые языки - Модулу, Оберон
| |
5.50, kshetragia (ok), 05:35, 25/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
Component Pascal != Free Pascal. И для него к сожалению есть только BlackBox, полностью заточенный под винду. Это наверное один из немногих языков, о котором читаешь и хочется писать на нем.
| |
|
6.51, bvf (ok), 13:46, 25/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
> Component Pascal != Free Pascal. И для него к сожалению есть только
> BlackBox, полностью заточенный под винду. Это наверное один из немногих языков,
> о котором читаешь и хочется писать на нем.
Согласен оберон2,он же компоненнтный паскаль,великолепный язык, но какая разница от замечательного языка если он никому не нужен?
| |
|
7.54, oops_ (?), 15:08, 25/02/2011 [^] [^^] [^^^] [ответить]
| +/– |
Инертность.. Даже казалось бы у активной социальной группы, коими по идее должны являться программисты. Реально же как я это вижу.. Нормальный компилятор Оберона и можно будет смело закапывать и Java и .Net
| |
|
|
|
|
|
|
|