The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Noop - новый язык для виртуальной машины Java"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Noop - новый язык для виртуальной машины Java"  +/
Сообщение от opennews (??) on 17-Сен-09, 21:21 
Разработчики Google выпустили (http://www.h-online.com/open/Noop-a-new-language-for-the-JVM...) новый язык Noop (http://code.google.com/p/noop/), предназначенный для запуска на виртуальной машине Java (JVM). Авторы проекта описывают Noop как "новый язык, взявший все лучшее и отбросивший все худшее из современных и старых языков, в том числе и в области синтаксиса". Он построен (http://code.google.com/p/noop/wiki/Features) на основе объектно-ориентированных концепций "внедрения зависимости (http://ru.wikipedia.org/wiki/%D0%92%D0%B...)" (передача объекту ссылки на внешнюю зависимость при инициализации) и неизменяемости (Immutability). Язык имеет легко читаемый код, но строгую типизацию. Noop не реализует: статические методы, наследование и примитивы.

Для исходных текстов Noop запланированы три пути выполнения: трансляция в исходные тексты на языке Java, интерпретаци...

URL: http://www.h-online.com/open/Noop-a-new-language-for-the-JVM...
Новость: http://www.opennet.me/opennews/art.shtml?num=23459

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


3. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от Iv945n (ok) on 17-Сен-09, 21:24 
> Noop не реализует: статические методы, наследование и примитивы.

Ну жизнь без статических методов ещё можно себе как-то представить, но без наследования - мягко говоря с трудом. А что такое примитивы?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от rimidal (ok) on 17-Сен-09, 22:45 
+1

Примитивы - это элементарные типы (int, float, double и т.п.). Да уж счетчик в форе это теперь экземпляр класа. Просто жесть. И флажок теперь это уже роскошь.

P.S. Noop - полный бред. Даже смотреть на него как-то не хочется.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

18. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от Поросеночек on 17-Сен-09, 23:33 
>Да уж счетчик в форе это теперь экземпляр класа.

А стандартные итераторы C++ и итераторы в общем - это уже не экземпляры классов?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

21. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от rimidal (ok) on 17-Сен-09, 23:59 
я имел в виду:

for(int i=0; i<5; i++){
   ......
}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

27. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от аноним on 18-Сен-09, 00:48 
>счетчик в форе это теперь экземпляр класа. Просто жесть.

И что? А про итераторы забыли? И чем, по-вашему плох класс в качестве счетчика? Если там нет наследования и виртуальных функций, оверхеда не будет, скорость такая-же, как с интом, зато возможность методы и возможность наследования.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

31. "Noop - новый язык для виртуальной машины Java"  –2 +/
Сообщение от СуперАноним on 18-Сен-09, 06:30 
Извините, но объектно-ориентированные концепции и отсутствие наследования, это как сочетается?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

40. "Noop - новый язык для виртуальной машины Java"  +4 +/
Сообщение от Arsenicum on 18-Сен-09, 10:35 
"Внедрение зависимостей" полная замена наследования. Вопрос в том как привыкнуть к такому и насколько это удобно. Time will tell.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

54. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Warhead Wardick on 18-Сен-09, 18:25 
>Если там нет наследования и виртуальных функций, оверхеда не будет, скорость такая-же, как с интом, зато возможность методы и возможность наследования.

Да-да-да :) Там весь класс итератора святым духом упакуется в какой нить EAX регистр проца _целиком_ ... и снова "жава быстрее процессора" :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 17-Сен-09, 21:55 
От разработчиков Гугла было бы больше пользы, если бы они решали реальные задачи. Раз уж им интересна работа с языками, то лучше бы пилили Java или развивали C++, помогая улучшать GCC или создавая/улучшая библиотеки C/C++/Java. Результаты их работы были бы намного более ценны. А создавать новый язык... которых и так наплодилось видимо-невидимо... Не скажу, что это плохо... но распылять драгоценные ресурсы на необязательные вещи на мой взгляд нерационально, тем более, что нормальных разработчиков в мире по пальцам пересчитать. А работы по программированию в мире, даже исходя из текущих задач, хватит еще на десятки лет вперед, не считая того, что всё постоянно движется, и постоянно появляются новые задачи.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Noop - новый язык для виртуальной машины Java"  +2 +/
Сообщение от iZEN (ok) on 17-Сен-09, 22:07 
>Раз уж им интересна работа с языками, то лучше бы пилили Java или развивали C++, помогая улучшать GCC или создавая/улучшая библиотеки C/C++/Java.

GCC слишком перегружен. Хорошо, что появился LLVM. Вовремя, надо сказать, и под либеральной лицензией.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от FUKEDITOR on 17-Сен-09, 22:56 
> GCC слишком перегружен. Хорошо, что появился LLVM.

Угу, а LLVM в свою очередь использует GCC в качестве backend-a :-D

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

22. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от marv on 18-Сен-09, 00:10 
только без паники: по словам разрабов - это временно.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

28. "Noop - новый язык для виртуальной машины Java"  –2 +/
Сообщение от User294 (ok) on 18-Сен-09, 01:59 
"нет ничего более постоянного чем временное".

ЗЫ даже ваша жизнь - не более чем временное явление. Поэтому довольно слабое утешение если это временное означает "50 лет" например :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

39. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Йух (??) on 18-Сен-09, 10:21 
Простите, чем это он перегружен? ЛЛВМ не быстрее гцц, а то и медленнее. :\
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

45. "Noop - новый язык для виртуальной машины Java"  –2 +/
Сообщение от vitek (??) on 18-Сен-09, 13:46 
он видимо имел ввиду, что он перегружен всякими бзд-системами, в которых им приходиться пользоваться...
а для таких либералов - это как серпом по ядрам.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

62. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от vitek (??) on 18-Сен-09, 21:38 
столько показателей своей правоты я давно не получал. :-DDDDDDDDDDDDDD
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Noop - новый язык для виртуальной машины Java"  +2 +/
Сообщение от usr on 17-Сен-09, 22:08 
Угу. Учитывая непонятки с Sun, могли бы сделать "Java 3", из которой бы выбросили весь legacy груз. По аналогии с Python. Тем более, применять есть где - свой же Android.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

34. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Александр (??) on 18-Сен-09, 09:03 
> могли бы сделать "Java 3", из которой бы выбросили весь legacy груз

И к чертям все стандарты в яве. Не, так дела не делаются. Можно, конечно, новую платформу замутить, и будет еще один J++/J#, уже от гугла :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

47. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от vitek (??) on 18-Сен-09, 14:23 
>Учитывая непонятки с Sun, могли бы сделать "Java 3",

т.е. sun, учитывая непонятки с самими собой, могла бы....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Noop - новый язык для виртуальной машины Java"  –1 +/
Сообщение от Voviandr (??) on 17-Сен-09, 22:42 
>От разработчиков Гугла было бы больше пользы, если бы они решали реальные
>задачи. Раз уж им интересна работа с языками, то лучше бы
>пилили Java

добавили бы делегаты - цены  тогда яве бы не было .

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

35. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от Александр (??) on 18-Сен-09, 09:04 
Зачем они ей? Там и без делегатов все нормально делается.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

44. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Voviandr (??) on 18-Сен-09, 13:27 
делегаты - это реализованный в языке паттерн проектирования "observer".
паттерны очень хороши для тех, кто умеет ими пользоваться и знает, как и где их применять.
а анонимный класс - это гемор. он неудобен.
также неплохо бы добавить properties в стиле c#.
опять-таки - реализация паттерна "proxy".
очень нужная и полезная.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

37. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от uZver (??) on 18-Сен-09, 10:06 
> добавили бы делегаты - цены  тогда яве бы не было .

first class property я еще понимаю зачем. Удобно, но можно прожить и без них. А вот нафига делегаты?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от Аноним (??) on 17-Сен-09, 22:11 
в Android и так не обычная а специфическая реализация Java, не от Sun
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

38. "Noop - новый язык для виртуальной машины Java"  –2 +/
Сообщение от uZver (??) on 18-Сен-09, 10:07 
да ладно ;)

там обычная java только без swing, а со своим GUI-подходом. Остальное это дополнительные либы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

43. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от Volodymyr Lisivka email on 18-Сен-09, 13:18 
>да ладно ;)
>
>там обычная java только без swing, а со своим GUI-подходом. Остальное это
>дополнительные либы.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

69. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от uZver (??) on 19-Сен-09, 10:44 
> Там регистровая виртуальная машина Dalvik, которая не совместима со стековой виртуальной машиной от Сан. jar-ки надо перекомпилировать сначала, прежде чем запускать под Dalvik-ом. Трудозатраты сравнимые с компиляцией в родной код при помоши gcj.

тип ВМ не задается спекой потому регистровая или стековая для приложения - пофигу. разница в байт-коде - да, есть. Но если перенести пред-компилер darvik на сам darvik, то Андроит сожет запускать и свой байт-код и стандартный java byte-code. Во втором случае добавится еще одна фаза, но сама ВМ дарвика не меняется.

gcj при всем поем уважении к OpenSource & FSF не JAVA. на этом все и заканчивается. таких глюко-багов как на gcj на РАБОТАЮЩИХ приложениях я не ловил больше нигде.

Как java dev рекомендую при первой возможности сносить gcj и ставить либо sun JDK либо OpenJDK либо IcedTed (RedHat)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Noop - новый язык для виртуальной машины Java"  +1 +/
Сообщение от pro100master (ok) on 17-Сен-09, 22:31 
>is a new language experiment that attempts to blend the best lessons of >languages old and new, while syntactically encouraging industry best-practices >and discouraging the worst offenses

Эксперимент? Так что вряд ли мы увидим серьёзное продолжение :)))

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от rimidal (ok) on 17-Сен-09, 22:40 
Сколько уже можно плодить виртуальные машины и интерпритаторы? Может хватит? Java как язык довольно совершенен. Единственный на мой взгляд недостаток так это апетиты по памяти у JVM. Лучше бы саму виртуальную машину пилили.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

36. "Noop - новый язык для виртуальной машины Java"  –4 +/
Сообщение от andr.mobi (??) on 18-Сен-09, 09:55 
> Java как язык довольно совершенен.

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

42. "Noop - новый язык для виртуальной машины Java"  +3 +/
Сообщение от Volodymyr Lisivka email on 18-Сен-09, 13:10 
> IMHO джава - уродец

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

Да, со стековой виртуальной машиной они ошиблись (так же как и автора *апаратных* стековых машнин: MIPS, Z80, Intel 8080, etc.) - архитектура MIPS (которая почти один-в-один соответствует архитектуре JVM) плохо ложится на архитектуру CISC (и наоборот). Но на SUN JVM жизнь не заканчивается - есть регистровые виртуальные машины (Dalvik, LLVM, etc.), есть компиляция в родной код (gcj, etc.).

Основная проблема Явы не в этом, основная проблема в архитектуре програмирования вообше.

"Тормоза" - это выполнение никому не нужного кода. Этим страдают все програмы на сегодняшний день. Большие и сложные програмы этим страдают больше. Основные причины - инициализация кода и перестраховка.

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

Что нужно?

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

48. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 15:14 
>Покажи что-то лучшее из универсальных языков.

C/C++, хотя сферы применения C/C++ и Java не пересекаются. Java не является универсальным языком. К тому же для него на порядки меньше библиотек, чем для Си и Си++. И даже относительно простая стыковка с C не особо спасает Java.

> Ява вобрала в себя лучшее из
>Си и Обьектного Си, откинув в сторону проблематичные участки.

"Откинув в сторону"? "Проблематичные участки"?

Если говорить о Java как об универсальном языке, то:

Никто ведь не заставляет начинающего пользоваться всеми возможностями Си++, которые он оценит только, став профессионалом. Sun порезали всё самое полезное в Си/Си++, выкинув шаблоны (и заодно стандартную библиотеку C++, в том числе std::vector и std::map [аналогов которых в Java не было до Java 6]), препроцессор, операции с указателями, множественное наследование и т.д., без которых создание больших систем становится значительно сложнее, а из-за усложнения алгоритма появляются неизбежные тормоза и излишний расход памяти. Лучше бы добавили что-то к Си/Си++. Вот это было бы круто. Страуструп (создатель Си++) ведь придумал очень... очень гибкую вещь. Фактически сам язык не изменялся более 10 лет, и тем не менее ни чуть не устарел.

> Процесоры уже делают предсказание ветвлений и прочую фигню - нужно облегчить им эту задачу.

Используй Си/Си++ (возможно, в горячих участках вместе с Ассемблером) и читай рекомендации по оптимизации. Если тебе нужно поднять производительность на порядки, то неизбежен пересмотр алгоритма.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

49. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от anonumous on 18-Сен-09, 17:02 
> td::vector и std::map [аналогов которых в Java не было до Java 6])

java.util.Vector Since: JDK1.0
java.util.Hashtable Since: JDK1.0
java.util.HashMap Since: JDK1.2

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

50. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 17:13 
Анонимус, сравни расход памяти и скорость обращения к элементу вектора из миллиона элементов по одному байту. Всё тобой перечисленное совсем не то же самое, что std::vector и std::map.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

51. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от anonymous (??) on 18-Сен-09, 17:35 
Начиная с jdk1.2 Vector переписали, к тому же методы в нем синхронизованы. От того и тормоза. Нужна скорость, пользуем ArrayList. Но он появился ну никак не в 6-й версии. Гораздо раньше.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

53. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 18:10 
В Java вектор хранит ссылки на _объекты_, а в C++ - сами объекты. Т.е. накладные расходы на хранение 1 байта в векторе C++ практически равны 0. В Java нужно хранить объект, на хранение которого нужно как минимум 8 байт + ссылка на объект в самом векторе (как минимум 4 байта), т.е. в сравнении с C++ разница в хранении простых типов данных как минимум на порядок.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

55. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 18-Сен-09, 18:44 
> в сравнении с C++ разница
>в хранении простых типов данных как минимум на порядок.

http://java.sun.com/j2se/1.4.2/docs/api/java/nio/ByteBuffer....

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

58. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 19:00 
>> в сравнении с C++ разница
>>в хранении простых типов данных как минимум на порядок.
>
>http://java.sun.com/j2se/1.4.2/docs/api/java/nio/ByteBuffer....

ByteBuffer не поддерживает динамический размер, в отличие от std::vector.
Производительность ByteBuffer ниже, чем у std::vector.
В std::vector можно хранить как простые типы, так и объекты.
К std::vector можно применять алгоритмы стандартной библиотеки Си++.
std::vector поддерживает контроль типов (т.к. является шаблоном Си++).
std::vector в определенных случаях можно прозрачно можно заменить на std::deque или другой контейнер с нужными характеристиками.
std::vector совместим с массивами Си (vector.data()), что важно при обмене данными с библиотеками dll/so, имеющими интерфейс Си, коих большинство.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

60. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 18-Сен-09, 19:10 
>ByteBuffer не поддерживает динамический размер, в отличие от std::vector.

Не проблема - сделаем.

>Производительность ByteBuffer ниже, чем у std::vector.

Тесты - в студию.

>В std::vector можно хранить как простые типы, так и объекты.
>К std::vector можно применять алгоритмы стандартной библиотеки Си++.
>std::vector поддерживает контроль типов (т.к. является шаблоном Си++).
>std::vector в определенных случаях можно прозрачно можно заменить на std::deque или другой
>контейнер с нужными характеристиками.

java.util.Vector, java.util.ArrayList, java.util.LinkedList

>std::vector совместим с массивами Си (vector.data()), что важно при обмене данными с
>библиотеками dll/so, имеющими интерфейс Си, коих большинство.

ByteBuffer тоже.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

61. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 19:52 
>>ByteBuffer не поддерживает динамический размер, в отличие от std::vector.
>
>Не проблема - сделаем.

Пилите, пилите... :)

>>Производительность ByteBuffer ниже, чем у std::vector.
>
>Тесты - в студию.

Тестирование - это твоё домашнее задание :)

>>В std::vector можно хранить как простые типы, так и объекты.
>>К std::vector можно применять алгоритмы стандартной библиотеки Си++.
>>std::vector поддерживает контроль типов (т.к. является шаблоном Си++).
>>std::vector в определенных случаях можно прозрачно можно заменить на std::deque или другой
>>контейнер с нужными характеристиками.
>
>java.util.Vector, java.util.ArrayList, java.util.LinkedList

Слабое утешение, для тех, кто знаком с мощью Си++ и его стандартной библиотеки.
К тому же не спасают ни от одного выше и ниже перечисленного пункта :)


>>std::vector совместим с массивами Си (vector.data()), что важно при обмене данными с
>>библиотеками dll/so, имеющими интерфейс Си, коих большинство.
>
>ByteBuffer тоже.

Исли бы еще ты смог легко обернуть в ByteBuffer возвращаемый массив Си и прозрачно вызвать функцию dll/so из Java без написания дополнительного кода :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

65. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от iZEN (ok) on 19-Сен-09, 00:47 
>Слабое утешение, для тех, кто знаком с мощью Си++ и его стандартной
>библиотеки.

Для C++ есть что-либо подобное системе управления жизненным циклом приложения Apache Maven?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

66. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 19-Сен-09, 00:53 
>>Слабое утешение, для тех, кто знаком с мощью Си++ и его стандартной
>>библиотеки.
>
>Для C++ есть что-либо подобное системе управления жизненным циклом приложения Apache Maven?
>

Maven - это помесь make с apt-get-ом и deb/rpm. Нашел чем хвастатся. При интеграции с линуксом с ним больше проблем чем пользы.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

70. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от iZEN (ok) on 19-Сен-09, 19:53 
>При интеграции с линуксом с ним больше проблем чем пользы.

А что, позвольте спросить, у вас вызвало затруднение при интеграции Maven в систему, прописывание переменной окружения M2_HOME или изменение пути к локальному репозиторию?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

71. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 20-Сен-09, 00:09 
>А что, позвольте спросить, у вас вызвало затруднение при интеграции Maven в
>систему, прописывание переменной окружения M2_HOME или изменение пути к локальному репозиторию?
>

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

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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

67. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 19-Сен-09, 01:13 
>>>ByteBuffer не поддерживает динамический размер, в отличие от std::vector.
>>
>>Не проблема - сделаем.
>
>Пилите, пилите... :)

Ты догадываешся, как изменяется размер в std::vector или тебе подсказать про memcpy?

>>>Производительность ByteBuffer ниже, чем у std::vector.
>>
>>Тесты - в студию.
>
>Тестирование - это твоё домашнее задание :)

А, студик.

>>java.util.Vector, java.util.ArrayList, java.util.LinkedList
>
>Слабое утешение, для тех, кто знаком с мощью Си++ и его стандартной
>библиотеки.

Да, мощи STL боятся даже автора: то то нельзя использовать, то это. Даже в машкодах не напишеш такой х...ни как на STL. А баги там отлавливают до сих пор. Boost++ или QT и то значительно лучше.

>К тому же не спасают ни от одного выше и ниже перечисленного
>пункта :)

Да ну? Ещё скажи что с ними не написали ни одной програмы.

>Исли бы еще ты смог легко обернуть в ByteBuffer возвращаемый массив Си

А для чего он, по твоему, предназначен? С пакетом java.nio знаком? http://java.sun.com/j2se/1.4.2/docs/api/java/nio/package-sum...

>и прозрачно вызвать функцию dll/so из Java без написания дополнительного кода
>:)

Ага, и на всех платформах, даже на тех, где динамических библиотек нет, и со всеми возможными типами даных. Представляю себе код: 300 строчек проверяют архитектуру, разрядность, представление данных, ос-ку, версию библиотек, тип компилятора, тип библиотеки, формат линковки, название функции, и потом одной строкой %легко!% вызвать функцию из либы для arm32 на x86_64 в режиме x86_32.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

59. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 19:05 
С помощью vector.data() можно получить указатель на внутренний буфер вектора, далее обработать данные вектора в стиле Си, используя полученный указатель, потом вернуться к работе с вектором в стиле Си++, используя все прелести std::vector.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

57. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Warhead Wardick on 18-Сен-09, 18:58 
Ну дык о чем и речь!

А то вон выше по треду утверждают что объект для счетчика цикла вместо инта - цикл ничуть не затормозит :) Жабщики такие жабшики! :)

При этом прошу заметить - я ничего не имею против Java когда на ней делают че нить типа серверной части ERP\CRM\LA\BPA - я даже обоими руками за!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

52. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 18-Сен-09, 18:09 
>>Покажи что-то лучшее из универсальных языков.
>
>C/C++, хотя сферы применения C/C++ и Java не пересекаются. Java не является
>универсальным языком. К тому же для него на порядки меньше библиотек,
>чем для Си и Си++. И даже относительно простая стыковка с
>C не особо спасает Java.

$ cat HW.java

public class HW {
  public static void main(final String args[]) {
    System.out.println("Hello, world!");
  }
}

$ cat mk.sh
#!/bin/bash

javac *.java
gcj -O3 -o hw *.class --main=HW
strip ./hw
rm -f *.class

$ du -bsh ./hw
5,3K    ./hw

$ time ./hw
Hello, world!

real    0m0.071s
user    0m0.028s
sys    0m0.011s


В gcc, Ява и Си++ компилируются практически одним компилятором, а Си++ и Яву можно свободно смешивать в пределах одного класса (один метод на Яве, другой на Си++). Если Ява не универсальный язык, то и Си++ - тоже. Если Си++ хороший - то и Ява тоже.

(Я согласен что виртуальная машина хуже апаратной).


> Sun порезали всё самое полезное в Си/Си++, выкинув
>шаблоны (и заодно стандартную библиотеку C++, в том числе std::vector и
>std::map [аналогов которых в Java не было до Java 6]), препроцессор,
>операции с указателями, множественное наследование и т.д., без которых создание больших
>систем становится значительно сложнее, а из-за усложнения алгоритма появляются неизбежные тормоза
>и излишний расход памяти.

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


>> Процесоры уже делают предсказание ветвлений и прочую фигню - нужно облегчить им эту задачу.
>
>Используй Си/Си++ (возможно, в горячих участках вместе с Ассемблером) и читай рекомендации
>по оптимизации.

Ассемблер для нескольких процесоров (x86, x86_64, ARM, MIPS) мне учить не охота - мне ещё знание ассемблера для PDP-11 не пригодилось пока. Потратить несколько лет чтобы выиграть несколько секунд - спасиба за подсказку. :-/

> Если тебе нужно поднять производительность на порядки, то неизбежен пересмотр алгоритма.

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

Про пересмотр алгоритма учат ещё в школе.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

56. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от IGX on 18-Сен-09, 18:46 
>[оверквотинг удален]
>public class HW {
>  public static void main(final String args[]) {
>    System.out.println("Hello, world!");
>  }
>}
>
>В gcc, Ява и Си++ компилируются практически одним компилятором, а Си++ и
>Яву можно свободно смешивать в пределах одного класса (один метод на
>Яве, другой на Си++). Если Ява не универсальный язык, то и
>Си++ - тоже. Если Си++ хороший - то и Ява тоже.

1) Много ли вы знаете скомпилированных gcj программ более ста тысяч строк? Я лично их не встречал, из чего делаю вывод, что не всё с gcj гладко, возможно, он поддерживает только старые стандарты Java, может быть, есть и другие проблемы, например со Swing и другими библиотеками.

2) Много ли вы знаете скомпилированных gcc программ для Windows? Я не знаю ни одной крупной системы, скомпилированной под Windows gcc.

_Фактически_ gcc + gcj под Windows не работоспособны. Я не думаю, что сейчас очень умно писать крупную систему, заточенную только под Unix, и тем более опираясь на gcj.

Мое мнение: В общем случае Java вместе с сопуствующими библитеками хорош для некоторых межплатформенных программ и Web-сервера.

>> Sun порезали всё самое полезное в Си/Си++, выкинув
>>шаблоны (и заодно стандартную библиотеку C++, в том числе std::vector и
>>std::map [аналогов которых в Java не было до Java 6]), препроцессор,
>>операции с указателями, множественное наследование и т.д., без которых создание больших
>>систем становится значительно сложнее, а из-за усложнения алгоритма появляются неизбежные тормоза
>>и излишний расход памяти.
>
>Если мне не изменяет память, в Си (который вы почему-то смешиваете с
>Си++) тоже этого нет,

Си является подмножеством Си++.

> но програмы на Си как правило быстрее.

Неверно. Си является подмножеством Си++.
На Си писать крупную систему... лучше сразу умереть. Хотя есть примеры ООП на Си: GTK, но это удовольствие для любителей садо-мазо.

>>> Процесоры уже делают предсказание ветвлений и прочую фигню - нужно облегчить им эту задачу.
>>
>>Используй Си/Си++ (возможно, в горячих участках вместе с Ассемблером) и читай рекомендации
>>по оптимизации.
>
>Ассемблер для нескольких процесоров (x86, x86_64, ARM, MIPS) мне учить не охота
>- мне ещё знание ассемблера для PDP-11 не пригодилось пока. Потратить
>несколько лет чтобы выиграть несколько секунд - спасиба за подсказку. :-/

Под мобильники крупные системы не пишут.


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

Для Си это неверно. В Си в половине случаев для ускорения алгоритма приходится увеличивать количество кода. Как минимум читай руководства по оптимизации от Intel и книги Криса Касперского.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

64. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от iZEN (ok) on 19-Сен-09, 00:45 
>Под мобильники крупные системы не пишут.

Да ну?

Java Platform SIP Support:
Java ME Platform
• JSR-180 (SIP API)
• JSR-281 (IMS API)
• Other useful JSR's on the client side
• JSR-135 (Mobile Media API)
Java EE Platform
• JSR-116 (Sip Servlet 1.0 API)
• JSR-289 (Sip Servlet 1.1)
• Other useful JSR's on the server
• JSR-141 (Session Description API)
• JSR-309 (Media Server Control API)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

68. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от Volodymyr Lisivka email on 19-Сен-09, 01:31 
>1) Много ли вы знаете скомпилированных gcj программ более ста тысяч строк?
>Я лично их не встречал, из чего делаю вывод, что не
>всё с gcj гладко, возможно, он поддерживает только старые стандарты Java,
>может быть, есть и другие проблемы, например со Swing и другими
>библиотеками.

Еклипса. Не всё гладко с gcc - там NullPointerException не принято бросать - лично я ни разу не видел. ;-) Падение всей системы при ошибке для наСильников - нормальное явление.

>2) Много ли вы знаете скомпилированных gcc программ для Windows? Я не
>знаю ни одной крупной системы, скомпилированной под Windows gcc.

Мне винда не интересна, но про CygWin я знаю. А ты?

>_Фактически_ gcc + gcj под Windows не работоспособны.

Почему? Я думаю что MinGW + Gcj чудесно работают до сих пор. Я их пробовал лет 5 назад.
Но сейчас для винды есть вариант получше - .Net.

> Я не думаю, что
>сейчас очень умно писать крупную систему, заточенную только под Unix, и
>тем более опираясь на gcj.

Вы про Линукс? :-)

>Мое мнение: В общем случае Java вместе с сопуствующими библитеками хорош для
>некоторых межплатформенных программ и Web-сервера.

И ещё для индустрии игр (JavaME).

>>Если мне не изменяет память, в Си (который вы почему-то смешиваете с
>>Си++) тоже этого нет,
>
>Си является подмножеством Си++.

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

>> но програмы на Си как правило быстрее.
>
>Неверно. Си является подмножеством Си++.

Читайте стандарты. AFAIK, restricted не распознается компилятором Си++. А это очень полезное ключевое слово.

>На Си писать крупную систему... лучше сразу умереть. Хотя есть примеры ООП
>на Си: GTK, но это удовольствие для любителей садо-мазо.

С Си++ удовольствия ещё меньше.

>>Ассемблер для нескольких процесоров (x86, x86_64, ARM, MIPS) мне учить не охота
>>- мне ещё знание ассемблера для PDP-11 не пригодилось пока. Потратить
>>несколько лет чтобы выиграть несколько секунд - спасиба за подсказку. :-/
>
>Под мобильники крупные системы не пишут.

А часть крупной системы под мобилку писать можно?


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

Ну и я о том же.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

63. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от iZEN (ok) on 19-Сен-09, 00:38 
>C/C++, хотя сферы применения C/C++ и Java не пересекаются. Java не является универсальным языком. К тому же для него на порядки меньше библиотек, чем для Си и Си++. И даже относительно простая стыковка с C не особо спасает Java.

Тесты говорят об обратном: http://kano.net/javabench/data

Количество СТАНДАРТНЫХ библиотек Java описывается вот этими спецификациями: http://jcp.org/en/jsr/all

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

46. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от vitek (??) on 18-Сен-09, 13:47 
вот так медленно и постепенно придём к языку noob
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

72. "Noop - новый язык для виртуальной машины Java"  +/
Сообщение от ximaera email on 21-Сен-09, 15:25 
С ума сойти. Язык ещё в альфа-версии, "You can't code anything interesting in Noop yet", но о нём уже раззвонили, как же, ведь это же Google!

Вот когда хотя бы релиз транслятора будет, тогда и стоило бы говорить о Noop.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру