На Java можно ставить крест
От: Аноним  
Дата: 04.01.08 19:17
Оценка: :)))
Bruce Eckel написал вчера в своем блоге, что все эти генерики и замыкания доведут жабу до цугундера. Ничего хорошего не получится и Java умрет. Жаль.

Шо делать? Си-шарпать?
Re: На Java можно ставить крест
От: Красин Россия  
Дата: 04.01.08 19:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Bruce Eckel написал вчера в своем блоге, что все эти генерики и замыкания доведут жабу до цугундера. Ничего хорошего не получится и Java умрет. Жаль.


А>Шо делать? Си-шарпать?


Bruce Eckel — истина в последней инстанции?
Re: На Java можно ставить крест
От: raydac Эстония http://www.igormaznitsa.com
Дата: 04.01.08 19:58
Оценка: +1 :))
еще давным давно, Дийкстра описывал программирование на очень популярном в то время PL/1 как управление самолетом у которого на пульте 7000 тумблеров и их количество постоянно растет (много кто слышал об этом языке?).. так и тут, Java эволюционирует как большинство распространенных языков программирования, а именно по басне Сергея Михалкова "Слон-живописец".. но сказать конкретно, какой язык придет ему на смену — покамест рано.. после начала подыхания Java, начнется массовый перевод софта с Java на новую "серебряную пулю" и будут требоваться программеры-полиглоты, которые бедет знать оба языка (новый и Java), то что это будет не Си или Си++ — однозначно, так как в нашем случае языки программирования идут на пути деградации и надо думать, что новый язык еще более изолирует программиста от аппаратуры (а так же даст еще более "мощный" механизм управления памяти, что разработчики GC захлебнутся в слюне с последней мыслью "а почему мы не догадались?!"), снизит требования к его подготовке и даст работу сотне другой тысяч менее грамотных индусов, китайцев и россиян-двоешников.. если увидите такое, то сразу бросайтесь в изучениен, нераздумывая...

p.s.

(сюжет для ненаучно-фантастического романа)
однажды, через сотню лет после смерти последнего видевшего вживую 8 разрядный процессор, какойнибудь программист робко напишет чтонибудь в машинных кодах (ассемлеры тогда уже не будут производиться), покажет окружающим, что его код работает в миллион раз быстрее с той же надежностью и будет распят как еретик и маргинал..
https://github.com/raydac
Re[2]: На Java можно ставить крест
От: Дм.Григорьев  
Дата: 04.01.08 20:29
Оценка: +1
Здравствуйте, raydac, Вы писали:

R>после начала подыхания Java, начнется массовый перевод софта с Java на новую "серебряную пулю"


Гы. Scala да Nemerle? =) Кстати, позавчера начал изучать Scala... эээ... в общем, хожу под себя кипятком и бьюсь головой об стену, чего ж я, дурак, раньше за неё не взялся?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[3]: На Java можно ставить крест
От: unkis  
Дата: 04.01.08 21:59
Оценка:
ДГ>Гы. Scala да Nemerle? =) Кстати, позавчера начал изучать Scala... эээ... в общем, хожу под себя кипятком и бьюсь головой об стену, чего ж я, дурак, раньше за неё не взялся?
а что в этом языке такого нового, или что в нём есть такое, чего нет в java или C#?
Re: На Java можно ставить крест
От: Аноним  
Дата: 04.01.08 22:27
Оценка: +3
Здравствуйте, Аноним, Вы писали:

А>Bruce Eckel написал вчера в своем блоге, что все эти генерики и замыкания доведут жабу до цугундера. Ничего хорошего не получится и Java умрет. Жаль.


Одуреть. Брюс, конечно молодец, но как ни заманали.
Главное, вы мне покажите пример хотябы одного языка, который бы умер имея в интерпрайзе миллионы? В С++ полно неправильного дизайна? Он умер? И Java не умрет. Будет не модна, возможно, но не умрет.

--aefimov (Лень логиниться)
Re[4]: На Java можно ставить крест
От: Дм.Григорьев  
Дата: 04.01.08 22:51
Оценка:
Здравствуйте, unkis, Вы писали:

U>а что в этом языке такого нового, или что в нём есть такое, чего нет в java или C#?


http://www.scala-lang.org/docu/files/ScalaOverview.pdf (по-английски; на RSDN в статьях/декларативное/языки есть перевод этого обзора для первой версии языка).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
Re[4]: Scala, пеар ...
От: Lazy Cjow Rhrr Россия lj://_lcr_
Дата: 04.01.08 23:40
Оценка: +1
unkis,

U>а что в этом языке такого нового, или что в нём есть такое, чего нет в java или C#?


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

Вот маленький такой калькулятор, обращаю внимание на функцию eval. По моим субъективным ощущениям, эквивалентный джавовский код будет раза в 4 больше. Плюс появление (анти-)паттерна "визитор".
object Gadts extends Application {

  abstract class Term[T]
  case class Lit(x: int) extends Term[int]
  case class Succ(t: Term[int]) extends Term[int]
  case class IsZero(t: Term[int]) extends Term[boolean]
  case class If[T](c: Term[boolean],
                   t1: Term[T],
                   t2: Term[T]) extends Term[T]

  def eval[T](t: Term[T]): T = t match {
    case Lit(n)        => n
    case Succ(u)       => eval(u) + 1
    case IsZero(u)     => eval(u) == 0
    case If(c, u1, u2) => eval(if (eval(c)) u1 else u2)
  }

  Console.println(
    // типа "if (1 == 0) 41 else (++41)"
    eval(If(IsZero(Lit(1)), Lit(41), Succ(Lit(41)))))
}
quicksort =: (($:@(<#[),(=#[),$:@(>#[)) ({~ ?@#)) ^: (1<#)
Re[3]: На Java можно ставить крест
От: Alex EXO http://aleksandr-zubarev.moikrug.ru/
Дата: 05.01.08 03:11
Оценка:
Здравствуйте, Дм.Григорьев, Вы писали:
ДГ>Гы. Scala да Nemerle? =) Кстати, позавчера начал изучать Scala... эээ... в общем, хожу под себя кипятком и бьюсь головой об стену, чего ж я, дурак, раньше за неё не взялся?

Рановато еще пока на мой взгляд... сыроват.
Я вот тоже жду пока "подсохнет", да и на развитие lift поглядываю.
Но в ближайшие пару лет IMHO еще рано.
Re: На Java можно ставить крест
От: Аноним  
Дата: 05.01.08 04:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Bruce Eckel написал вчера в своем блоге, что все эти генерики и замыкания доведут жабу до цугундера. Ничего хорошего не получится и Java умрет. Жаль.


А>Шо делать? Си-шарпать?

Лучше Лиспать
Re[2]: На Java можно ставить крест
От: raydac Эстония http://www.igormaznitsa.com
Дата: 05.01.08 07:07
Оценка:
cobol например, вроде и не помер, но и не живой
https://github.com/raydac
Re[2]: На Java можно ставить крест
От: raydac Эстония http://www.igormaznitsa.com
Дата: 05.01.08 07:10
Оценка:
А>>Шо делать? Си-шарпать?
А>Лучше Лиспать

сейчас такая ситуация с большинством разработчиков, что убери гарбадж коллектор и начнут помирать тысячами (как девелоперы).. так что отката на старые языки ждать не стоит
https://github.com/raydac
Re[3]: На Java можно ставить крест
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 05.01.08 07:20
Оценка:
Здравствуйте, Дм.Григорьев, Вы писали:

ДГ>Гы. Scala да Nemerle? =) Кстати, позавчера начал изучать Scala... эээ... в общем, хожу под себя кипятком и бьюсь головой об стену, чего ж я, дурак, раньше за неё не взялся?

Аналогично. Но пока играюсь только, все же решил дождаться доведения до ума модуля Scala Development Tools под Eclipse.
Re[5]: Scala, пеар ...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 05.01.08 07:20
Оценка: 1 (1) +1
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

Быстрая сортировка... поражает, насколько код близок к словесному описанию алгоритма в отличие от императивного аналога:
def quicksort(list: List[int]): List[int] = {
    if (list.length <= 1) list
    else {
        val l = list(list.length / 2)
        quicksort(list filter (l >)) ::: (list filter (l ==)) ::: quicksort(list filter (l <))
    }
}
Re[3]: На Java можно ставить крест
От: Kisloid Мухосранск  
Дата: 05.01.08 08:15
Оценка:
Здравствуйте, raydac, Вы писали:

А>>>Шо делать? Си-шарпать?

А>>Лучше Лиспать

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


А кто сказал, что в Лиспе нет сборщика мусора? Грубя говоря Лисп это суперсет для Java, C#, C/С++, итд итп.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[6]: Scala, пеар ...
От: Аноним  
Дата: 05.01.08 10:02
Оценка:
Здравствуйте, rsn81, Вы писали:

R>Здравствуйте, Lazy Cjow Rhrr, Вы писали:


R>Быстрая сортировка... поражает, насколько код близок к словесному описанию алгоритма в отличие от императивного аналога:
def quicksort(list: List[int]): List[int] = {
R>    if (list.length <= 1) list
R>    else {
R>        val l = list(list.length / 2)
R>        quicksort(list filter (l >)) ::: (list filter (l ==)) ::: quicksort(list filter (l <))
R>    }
R>}


Вы еще на Haskell не видели
quickSort :: Ord a => a -> a
quickSort []     = []
quickSort (x:xs) = quickSort [y | y <- xs, y < x] ++ [x] ++ quickSort [y | y <- xs, y >= x]
Re[2]: На Java можно ставить крест
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 05.01.08 10:17
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Одуреть. Брюс, конечно молодец, но как ни заманали.

А>Главное, вы мне покажите пример хотябы одного языка, который бы умер имея в интерпрайзе миллионы? В С++ полно неправильного дизайна? Он умер? И Java не умрет. Будет не модна, возможно, но не умрет.
Например, прикладное программирование в SAP R/3: язык ABAP/4, в принципе, морально умер (программируя на нем, ошущаешь четко различимый запах разложения), шутка ли, с 80-х годов ничего нового... еще поживет, пока все предприятия у нас не переползут на версию SAP R/3 >= 6.0, там идет на замену Java (а это длительный процесс, ибо миллионы).

По поводу Scala, Nemerle и прочих нишевых языков... думаю, если они полностью и заменят текущих монстров (C++, Java, C#), то очень не скоро, а пока, как и сказал Мартин Одерски:

Scala — это язык общего назначения. Я думаю, что он является альтернативой Java во всех прикладных областях. Большим преимуществом является то, что он делает работу программистов продуктивнее, особенно хороших программистов.

© Десять вопросов Мартину Одерски о Scala

Или из его же материала:

Одна из причин, способных заставить вас обратиться к программированию на Scala, состоит в том, что Scala позволяет увеличить производительность разработчика по сравнению с Java, сохраняя скорость исполнения JVM, существующие инвестиции в Java-код, знания и множество API, имеющихся для JVM. Scala обладает краткостью языков типа Ruby или Python, но при этом статически типизирована, как и Java. Еще одна причина в том, что Scala поставляется с Erlang-подобной библиотекой Actors, которая существенно упрощает параллельное программирование, но работает под JVM.

© Первые шаги в Scala

Re: На Java можно ставить крест
От: Аноним  
Дата: 05.01.08 10:21
Оценка: -2
Эккель молодец, все правильно написал. Если хочется сахара, нужно делать новый язык, имея в виду, при этом, что язык — не серебряная пуля, и никакой язык не отменит необходимости разрабатывать интерфейс, архитектуру и алгоритмы.

А>Шо делать? Си-шарпать?

Писать по старинке. Не обязательно использовать весь тот мусор, который понавесят в новых версиях. А то будет нечитабельное гуано как в скале, в которой синтаксический ###### достиг чуть ли высшего предела, судя по приведенным выше примерам.
мат удален, автор отправлен на заслуженый отдых
Re[7]: Scala, пеар ...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 05.01.08 10:23
Оценка:
Здравствуйте, <Аноним>, Вы писали:

Видел, мне и на Nemerle показывали:
def quicksort(lst) {
    | [] => []
    | x :: xs => quicksort($[y | y in xs, y < x]) + [x] + quicksort($[y | y in xs, y >= x])
}
Тоже с комментариями:
def quicksort(lst) { // отсортировать список
    | [] => [] // если список пуст, то возвратить пустой список
    | head :: tail =>
    // если список состоит из головы (head)
    // и любого хвоста (tail, от пустого списка, до списка любого размера), то
    // отсортировать первый подсписок
    quicksort(
        $[y | y in tail, y < head]) // элементы которого меньшие, чем голова исходного списка
        + [head] // прибавить к результату список, состоящий из головы исходного списка
        + quicksort( // отсортировать второй подсписок
        $[y | y in tail, y >= head]) // элементы которого больше или равны голове исходного списка
}
Re[5]: Scala, пеар ...
От: rsn81 Россия http://rsn81.wordpress.com
Дата: 05.01.08 10:28
Оценка: +1
Здравствуйте, Lazy Cjow Rhrr, Вы писали:

Обратил внимание, что в Scala подчистили маленькие несуразности, которые сейчас исправлены даже в C#, а в Java — нет. К примеру, в отношении порядка инициализации членов класса и вызова родительских конструкторов, как следствие, частичное (но оно стоит того) решение проблемы безопасной инициализации, писал об этом здесь: Re[12]: Virtual member call in constructor. Плохо?
Автор: rsn81
Дата: 14.11.07
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.