LINUX.ORG.RU

Технологии, которые задавят Java


0

0

Интересная (хоть и спорная) статья про технологии, которые теоретически могут пошатнуть позиции технологии Java.

Так же стоит почитать обсуждение этой статьи: http://lambda-the-ultimate.org/node/v...

>>> Bruce Tate: Technologies that may challenge Java



Проверено: ivlad ()

даунская статья, чувак явно перепил, ибо говорит что ява хуже руби из-за

Ruby: x1, x2 = 1, 0

Java: int x1 = 1; int x2 = 0;

хотя вообще-то на java можно int x1 = 1, x2 = 0;

и всё остальное в том же духе. ему бы бейсик попроовать - вот кто уж точно задавит и java и

anonymous
()

Это не статья вообще, а книга http://forum.vingrad.ru/index.php?showtopic=62620&st=30# , а в статье он ее пиарит.

А Тэйт радуется, что ему удалось найти бесплатный аналог MS Access - фреймворк для решения одной частоповторяющейся в его карьере задачи - создании сайта-морды к базе данных. За это хорошо башляют соответственно Тэйт этим всю жизнь и занимается, а Ruby on Rails позволяет поставить производство таких сайтов на поток

;-p

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

> Ruby: x1, x2 = 1, 0

ИМХО язык должен быть очень строгим и не позволять такого дерьма. ИМХО перед компиляцией должен проверяться стиль кодирования и именования переменных чтобы еще перед компиляцией уроду который придумал свой наикрутейший стиль вылез ERROR нах. Чего стоит только дотнетчики который лажают в стиле Java.

Oceanborn
()

> x1, x2 = x2, x1+x2

А в Perl давно уже так можно:

($x1, $x2) = ($x2, $x1+$x2);

Чем хуже?

anonymous
()

Мужик сравнивает hуй с пальцем. Чем строже язык тем меньше ошибок и тем понятней код. А при нынешних IDE, код который на две строки больше, набрать за пару сек можно.

НЕТ ИЗВРАЩЕНЦАМ РАЦАОНАЛИЗАЦИЯ ДОЛЖНА БЫТЬ РАЦИОНАЛЬНА

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

> Чем строже язык тем меньше ошибок и тем понятней код.

В таком случае все в срочном порядке переходят на Eiffel и Haskell. По
строгости жабка рядом не стояла.

> А при нынешних IDE, код который на две строки больше, набрать за
> пару сек можно.

Можно, но зачем, если рациональней упростить сам код?

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

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

Sun-ch
()
Ответ на: комментарий от Oceanborn

> > Ruby: x1, x2 = 1, 0
>
> ИМХО язык должен быть очень строгим и не позволять такого дерьма.

ИМХО при наезде стоило бы конкретно объяснять и обосновывать свои
претензии. Что не так с вышеприведенной строчкой кода?

> ИМХО перед компиляцией должен проверяться стиль кодирования и
> именования переменных чтобы еще перед компиляцией уроду который
> придумал свой наикрутейший стиль вылез ERROR нах.

Кстати, в отличие от жабки, в Ruby это есть. Имена константы и классов
(а там последнее - подмножество первого) с заглавной буквы, остальное
со строчной - и это не соглашение, а именно синтаксическое ограничение.

int19h ★★★★
()

>Dynamic languages can be much more productive than static ones like C++ or Java. They allow you to express more with less.

Дальше можно не читать. Что-то они все заболели - сначала эккель теперь этот.

r ★★★★★
()

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

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

Пользую Ruby в реальном аналитическом проекте уже год. 7 девероперов разной квалификации стали писать в течение недели без проблем под Linux+Ruby+FXRuby, до этого у них был опыт Windows + Delphi. Сейчас размер кодов 2.5M, все тип-топ.

Под Java так бы не получилось.



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

>Можно, но зачем, если рациональней упростить сам код? Раионализация должна быть Рациональна.

Грядёт будущее когда в микрофон скажешь надо то и надо а есть вот это. И нейронные сети сами побегут строить программу. Определять типы, писать методы, создавать классы.

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

Ruby ЗЛО

anonymous
()

Вообще Ruby очень хорош. Не настолько, что бы сменить Java, но программировать на нем одно удовольствие :)

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

>даунская статья, чувак явно перепил, ибо говорит что ява хуже руби из-за Ruby: x1, x2 = 1, 0 Java: int x1 = 1; int x2 = 0;

Хе-хе! Да нет милай, даун - это ты. Основной пойнт в статье - это возможности, отсутствующие ПРИНЦИПИАЛЬНО в данном случае в жабаю. Это в частности (то, что Брюс описывает ) continuation, создание/модификация классов во время работы программы. Последнее ПРИНЦИПИАЛЬНО невозможно в языках со статической типизацией. Почему - подумай мозгом - если есть.

Товарищи, которые тут опускают брюса - заодно обосрите Ant, Tomcat, Spring. Ибо афторы и активные девелоперы этих вещей, также активно пробуют Руби на рельсах, а Дженсон и того хуже - хвалит обшарпанный С против жабы!

Более продвинутые, и эффективные технологии будут лидировать. А красноглазые фанатики фанатеть!

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

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

anonymous
()

ну вот, опять ЛОРОвские кодеры завели свою песню - Жаба плохой язык...

кодеры! занимайтесь своим делом и не суйтесь в то, что не знаете! Жаба - платформа.

2Саныч: +5

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

>Жаба плохой язык...

Незнаю про кодеров, а жаба действительно неплохой язык для некоторых задач, платформой (jvm) не восхищаюсь. Руби язык лучче ( дерьмо только что не т объявления переменных как в смолтоке), а платформа (vm) тоже не сахер.

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

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

Действительно, идиоты-сейлзы из Idiots Become Managers на 100% уверены, что на Жабе ваще нельзя сделать ошибок. Они даже своего бывшего коллегу не читали. Главу 6 в ламерскую харю им, когда они что-то лепечут про ПРИНЦИПИАЛЬНОЕ отсутствие утечек памяти в Жабе.

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

> Вообще Ruby очень хорош. Не настолько, что бы сменить Java, но
> программировать на нем одно удовольствие :)

Хочу уникод нормальный в ruby! Чтоб перейти на него с концами, и больше
на питон не оглядываться...

int19h ★★★★
()

Жаба сгубила Томми. Не простим...

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

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

JVM - это не платформа. Платформа это :

1) a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high performance, multithreaded

2) J2SE technologies, J2EE technologies, J2ME technologies, Java Card, XML, Web services и т.п.

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

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

Оно и понятно. По крайней мере до сих пор так и было. Впереди не то, что лучше, а то, что лучше пропиарено и проплачено.

>Встречайте Sun+Microsoft=Java.Net :))

Неново. Санкам, чтобы вытащить жабу, жизнено важно сотрудничать с MS. Как не кричи, а у MS все возможные и невозможные преимущества. Я несколько раз видел в штатах контракты на проекты по портированию апликух с жаба на .нет и людей видел, которые этим занимаются. Вроде уж жаба на данный момент при всех ее минусах, всеже лучше .нет на порядок и по всем статьям, кроме может быть десктопа, а вот на тебе!

anonymous
()

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

Проблемы с логикой у него.

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

>Последнее ПРИНЦИПИАЛЬНО невозможно в языках со статической типизацией. Почему - подумай мозгом - если есть.

Угу. Javassist нам только сниться. Почему - подумай мозгом - если есть.

>Товарищи, которые тут опускают брюса - заодно обосрите Ant, Tomcat, Spring.

НАписанные на странном ублюдочном языке java... С ума сойти.

r ★★★★★
()
Ответ на: комментарий от Sun-ch

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

Всё в точности наоборот: вера в то что можно избежать ошибок на любом языке, присуща как раз малограмотным кодеришкам.

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

А идеал таки недостижим, ни дизайном, ни использованием мега языков. Поскольку даже написаный на Ada или OCaml код, не застрахован, от того, что кодер опечатался написал '-' вместо '+', и, как говаривал старина Вирт, "полетели ракеты не в ту сторону".

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

>Если люди, имеющие опыт и заслуг поболее, как видно, вашего, обоснованно критикуют Жабу

Изивините меня но мерять языки возможностями декларации переменных - это обоснованная критика? Дfун Эккель када писал статью тоже мерял жава с питоном на тему динамичности сравнивая отсутствие необходимости декларировать общий интерфейс и хвалил питон как динамический язык показывая насколько меньше кода. Ему даже в голову не приходило что есть разые типы статических типизаций, он даже вику которая есть на c2 (где он по идее жить должен) на эту тему не смотрел, на что ему пришлось указать, и показать как тоже код на статически типизированном OCamlе занимает столько же и обладает всеми теми же ствойствами что и питон в примеденном примере, но при этом еще и статически типизирован.

>Впрочем, Луговский, был прав - жаба это для тех, кто сдельно работает, а не творчески.

Именно. Есть разные задачи, разные ресурсы, разные цели и разные языки. Так что ТАйт что Эккель показали в своих похожих статьях только свое дилетанство. Один мой знакомый порывшись во внутренностях SWT у которого среди главных архитекторов Гамма сказал что они только книжки писать умеют. При чем сами их не читают.

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

> языке java... С ума сойти.

Какой оксюморон! Хи-хи-хи-с!:)

Просто, Брюс, в отличие от вас, "энтерпрайз слейва", саморазвивается.

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

>Жаба - платформа

Повторять при каждом кофепитии 8 раз стоя/сидя лицом в направлении оффиса Sun.

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

>Угу. Javassist нам только сниться. Почему - подумай мозгом - если есть.

Ненужно сравнивать пенис - если у тебя есть, с пальцем. Javassist (это вроде шняга типа ASM, только за бабки ) - тул для грязного хака байткода во время загрузки класса. Таким же образом, можно скопировать виртуальную таблицу С++ шного класса в память, похакать ее, а затем у каждого создаваемого обьекта, менять указатель на ВМТ на похаканную. Вау! Жабе такого и не снилось! Можно даже сгенерить автокод и выполнить его!

Рантайм и загрузка класса - есть разница? Подумай мозгом если есть.

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

>НАписанные на странном ублюдочном языке java... С ума сойти

Да ты не передергивай красноглазый. "ублюдочном java" никто не обсирал здесь. Здест обсирали тэйта. Обосрите же за компанию и Дженсона с Фаулером и Дункана. Иди помолись на жаба!

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

Вы сравните лаконичность описания языков, созданных профессионалами и языка Java. Запутаннность Жабы - это нечто. В первом скачанном мною тулките был даже такой синтаксический уродец, как private protected. Одного уродца убрали (1.0.2), зато появились другие. Сравните с четким синтаксисом Camelot, который тоже для "неплатформы" JVM.

Что можно взять от "недоязычка" (с) Жаба, где даже шаблон "одиночка" некорректно создавать по GoF. Надеюсь, последнюю фразу мне вам не надо комментировать.

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

>Просто, Брюс, в отличие от вас, "энтерпрайз слейва", саморазвивается.

Звездит он, а не саморазвивается. Саморазвивался бы - читал бы умные статьи от чудаков которые разрабатывают языки в том же M$е а не Hello World Manual.

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

>екорректно создавать по GoF.

Что это Вы тычете гофом в г-на r? Он же ясно написал, что гоф - упертые ламеры, а он Д'Артаньян.

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

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

тебе показать как сделать Singleton на Жабе?

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

Брюс обосновал свою точку зрения. В отличие, кстати, от вас. Вы создаете то, что senior developer В.С.Луговский называет "информационный шум".

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

>Ненужно сравнивать пенис - если у тебя есть, с пальцем. Javassist (это вроде шняга типа ASM, только за бабки ) - тул для грязного хака байткода во время загрузки класса.

Вот и не сравнивай. И сначала прочитай что такое Javassist.

>Рантайм и загрузка класса - есть разница? Подумай мозгом если есть.

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

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

Ну и где Singleton на Жабе? Минуту тебе, или будешь, ламаком, как ты, собственно говоря и являешься.

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

жду минуту и звание ламака торжественно переходит к тебе! :-))))

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

> Брюс обосновал свою точку зрения. В отличие, кстати, от вас.

Окей разберем его обоснование.

======================================================================

Dynamic languages can be much more productive than static ones like C++ or Java. They allow you to express more with less. Here, I'll focus on Ruby, the hottest emerging dynamic language right now. Compare "Hello, World" in Ruby versus Java:

puts "Hello, world."

It's simple and concise. You don't have to write anything beyond the code that does the job. And the Java counterpart:

class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!") } }

With Java, types are static. That means the compiler checks all types; you must create and compile a full program. ***With Ruby, types are dynamic, so you don't have to declare them.*** You can just start typing and go. Here's a Fibonacci sequence in both languages.

============================================================

Его умное обоснование выделено звездочками. Теперь мы ткнем туда же куда я послал эккеля просвещатся http://c2.com/cgi-bin/wiki?CategoryLanguageTyping. То что он приводит как недостаток java называется Manifest Typing. Отсутсвие необходимости декларации типов - не есть преймущество динамических языков. В статических языках HAskell, StandrdML/OCAML используется техника называемая http://c2.com/cgi-bin/wiki?TypeInference которая возволяет выводить типы всех объектов. Тем не менее языки остаются статически типизированными. К стати в Java1.5 использыется подобная техника для вывода генериков - там не обязательно в 100% случаев указывать типы генериков - они часто могут быть выведены компилятором.

ТАк что его обоснование говорит только о том что он после java открыл для себя динамический язык Ruby и приводит в своем сравнительном анализе разницу только этих двух языков не потрудившись разобраться в чем сущьность этой разницы.

И претензия у меня только к самому Брюсу и к статье, и я не сравниваю Ruby и Java и не дай бог не восхваляю Java.

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

>Вот и не сравнивай. И сначала прочитай что такое Javassist.

Слушай федя, ты почитай статью, посмотри пример с наследованием от актив рекорд и зделай такое же в жаба. Или например шаг номер 1: зделай класс Федя , пару объектов типа ф = нью Федя; ж = нью Федя;, затем скажем добавь туда (в Федя) поле и метод, да так, чтобы ф и ж это почуяли. Иначе воду в ступе толочь смысла нет. Покажи также как в жаба работает continuation.

>Ты шо такие простые приложения пишешь

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

>что даже класслоадером никогда не пользовался? Так просветись посмотри любой пример на тему класслоадеров

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

anonymous
()

Слушайте, ну идите вы займитесь чем-нибудь полезным, достали уже!

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

Я согласен с вами относительно дженериков, однако зачем делать сложно то, что можно сделать просто. В Смолтоке динамические типы были изначально, однако именно они считались "недостатками", когда на смолток наезжали маркетоиды от жабы. Сейчас уже обратно раскручивают ранее критикуемый принцип типизации.

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