LINUX.ORG.RU

Программирование на Scala

 


0

0

Издательством Artima подготовлена к изданию книга "Programming in Scala, A comprehensive step-by-step guide", первая книга от авторов языка Scala.

Programming in Scala обучает функциональному программированию с точки зрения практикующего программиста и рассказывает об особенностях языка, которые помогут читателю стать более продуктивным в программировании

>>> Подробности

anonymous

Проверено: anonymous_incognito ()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от sv75

>1. Ты действительно не знаешь ответов на эти вопросы? Ну, с дураками общаться не буду ;)

Нет, не знаю. Почему Apach.org и JDK написали на Java, а не тянули груз C++? И не ссылались на код, "написанный до них"? Для Юникса тоже на C++ и на C написаны тонны кода, и никто денег на переписывание всего добра на Java не выделял. И http://en.wikipedia.org/wiki/Legacy_system не катит. Legacy system это когда ты^Wдиректор купил 1+С Бухгалтерию и ему приходится ее поддерживать, а Office и SQR Server как и .NET Framework Микромягкие в любой момент могут начать писать с нуля, если от Python/Ruby/Haskell они получат снижение издержек и сокращение сроков разработки. Опять же LOC уменьшится в 10-ки раз, как ты нас тут уверяешь. Так почему они не торопятся?

>Кури IronPython/F#/Lisp.NET ;)

Еще есть Nemerle, Scala.NET, Strongtalk, S# (ну это Smalltalk, но тоже есть). И шо?

>Проста она бы была, если бы простота языка порождала простоту кода. :)

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

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

> var - это палка о двух концах. Ктомуже не так много времени пишу типы.

Какой второй?

> Мало того я не так часто оъявляю переменные руками, во время использования о них догадывается IDE и сама их мне вставляет.

тем более, пускай вставляет с var.

> linq - это конечно круто. я когда увидел - пропёрся. Но единственный язык в которм такое смотрится органично - lisp.(clsql).

А что в других функциональныХ, да и в руби, питоном?

> А в с# имхо выглядит искуственно.

Да, C# теперь самый эклетичный язык, хотя нет, Oz(Mozart) еще наверное впереди.

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

1. эклектика - это всётаки "синтез", где всё вместе должо смотреться органично. =)

2. в python - не видел. вот в руби - может быть, я его плохо знаю. а SmallTalke такое замутить можно, ну может и в рубе тоже. Но за это платится динамической типизацией. это не + и не -, просто я о языках статической типизации.

3. Второй конец - что ты не пишешь тип => не видешь. Есть такой хороший тон писать List вместо ArrayList etc. Так что тут это было бы не правильно. Это помогало разве что локальным переменным, да и указание типов мне кажется выглядит нагляднее. Много времени это не кушает =)

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

Нет, не знаю. Почему Apach.org и JDK написали на Java, а не тянули груз C++? И не ссылались на код, "написанный до них"? Для Юникса тоже на C++ и на C написаны тонны кода, и никто денег на переписывание всего добра на Java не выделял. И http://en.wikipedia.org/wiki/Legacy_system не катит. Legacy system это когда ты^Wдиректор купил 1+С Бухгалтерию и ему приходится ее поддерживать, а Office и SQR Server как и .NET Framework Микромягкие в любой момент могут начать писать с нуля, если от

> Python/Ruby/Haskell они получат снижение издержек и сокращение сроков разработки.

1. МС пишет с использованием продуктов.... барабаны.... МС и только их! Этого хватит, чтобы послать нафиг все Ruby/haskel/etc - она их не конторолирует. .NET - их платформа, но динамические языки там - не продакшн. Вывод - даже если бы это было оправдано - не на что переписывать. ;)

2. Остальное - зависит от продуктов. SQL server - объяснять не буду, там производительность - главное, на нишу такого ПО указанные языки не претендовали.

3. Office - они его еще на .нет не переписали даже, как я помню. А я встречал одни и теже косяки в Ворд 6.0 и Ворд 2002. Резюме - в этой куче легаси кода никто копаться не станет и с нуля переписывть тоже. Переписывание MSO с нуля привелдет к невозможноси работать в нем с файлами МSО. ;)

4. Стоимость разработки кода кодерами в бизнесе МС - вещь, по ощущениям, весьма малая. Тем более я не утверждал, что IDE не убыстряют написание тон кода в C#. Убыстряют, конечно. А вот поддержка в VS динамических языков - это денег стоить будет. Резюме - овчинка не стоит выделки.

> Опять же LOC уменьшится в 10-ки раз, как ты нас тут уверяешь.

Я - не уверял. Я говорил, что есть случаи, когда да.

> Кури IronPython/F#/Lisp.NET ;)

>Еще есть Nemerle, Scala.NET, Strongtalk, S# (ну это Smalltalk, но тоже есть). И шо?

Первые - фирмы Майкрософт. Вторые, как я знаю - нет.

> VB и dBase простые языки и их хватает для много,

Я писал на VBA когда-то давно. Ужасненько было. И код чудовищный получается.

> а код самый простой , проще некуда.

Ага, в енумах надо было писать first last отдельные еще в каком-то VB. Пример был у макконела. Страх и ужас, ява проще гораздо по всем критериям.

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

> 1. эклектика - это всётаки "синтез", где всё вместе должо смотреться органично. =)

Ладно, тогда помойка.

> в python - не видел.

А что, list comprehension - это не более слабый вариант LINQ?

> Это помогало разве что локальным переменным

Это и есть только для помощи локальным переменным (или я отстал от жизни?)

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

> У явы сишный скобочный синтаксис - не всем нравится. Вот для них VB =)

Когда голворят VB, я как-то подразумеваю VB, а не VB.NET.

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

>А что, list comprehension - это не более слабый вариант LINQ?

Больно слабый... как аналог linq, но вообще list compregension мне нравится.

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

> 1. эклектика - это всётаки "синтез"

Всё-таки нет. Как раз "эклектика" - это механическое смешение разнородных стилей.

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

>2. Остальное - зависит от продуктов. SQL server - объяснять не буду, там производительность - главное, на нишу такого ПО указанные языки не претендовали.

Ога, сразу "не претендовали". А чего жы тогда лезете тут со своими Pythonами и Эрлангами?

>40-50 строк на python'e )) http://www.linux.org.ru/jump-message.jsp?msgid=2389063&cid=2391047 >Верной дорогой идешь товарищ (С) Томми.

>Офигенно простой ответ, я оболдеваю. Если я правильно понимаю условие, то достаточно взять Erlang. http://www.linux.org.ru/jump-message.jsp?msgid=2389063&cid=2391002

40-50 строк! Каков цинизм! А как только производительности касаемся, так "на нишу такого ПО указанные языки не претендовали." А жаба как раз промышленный язык, претендующий на нишу производительного ПО. И БД есть, хоть и не Оракл, целиком написанные на JDK, и работающие хоть на MacOSX, хоть на Vista, хоть на BSD. И Scala претендует ровно на ту же нишу производительного ПО, как и Nemerle & F#.

Когда начнете со своими Ruby претендовать на нишу Java, тогда и посчитаем getterы/setterы и LOC.

>Э, не согласен. Сравним с ближайшим аналогом - C#. Близкий круг пользователей, близкое назначение, писать без IDE - на обоих трудно, C# 1.0 - клон жабы. Сравним C# 3.0 и 1.6?

>PS Я не люблю C#/MS, если что.

Вот когда они на своем C# 3.5 перепишут SQL Server, тогда и поговорим о синтаксическом сахаре, о var, def и out, и о том, как с их помощью радикально упростилось создание производительных надежных систем. А пока я в IDE getterы/setterы буду лабать. На Java 6.0 и 7.0beta

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

Просто слово "эеклектьтика" получило негативную окраску, но вообще это архитектруное/филосовское направление, где не просто "механическое" смешение, а всё таки творчество.

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

> Ога, сразу "не претендовали". А чего жы тогда лезете тут со своими Pythonами и Эрлангами?

А исходная задача предполагала создание SQL сервера, или все-таки прослойки сежду сокетами и БД?

> А жаба как раз промышленный язык, претендующий на нишу производительного ПО. И БД есть, хоть и не Оракл, целиком написанные на JDK, и работающие хоть на MacOSX, хоть на Vista, хоть на BSD.

Это что, Derby /Java DB?

> Вот когда они на своем C# 3.5 перепишут SQL Server, тогда и поговорим о синтаксическом сахаре, о var, def и out, и о том, как с их помощью радикально упростилось создание производительных надежных систем. А пока я в IDE getterы/setterы буду лабать. На Java 6.0 и 7.0beta

А что, на Java написан хоть один промышленный SQL Server? o_O

Я не собираюсь уговариваю вас перейти на C#. Даже наобоорот.

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

> А как только производительности касаемся, так "на нишу такого ПО указанные языки не претендовали."

Да. Если речь о производительной нише - то можно я буду D с Java сравнивать?

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

> Когда начнете со своими Ruby претендовать на нишу Java, тогда и посчитаем getterы/setterы и LOC.

Вот тут как раз ныл товарищ на тему рельсов - "дерьмо мол эти рельтсы, но спасибо, что отъели куучок ниши Явы" - это претензия на часть ниши Явы?

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

D c Java? ммм... черезчур разные... да и сравнивать пока рано...

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

>"дерьмо мол эти рельтсы, но спасибо, что отъели куучок ниши Явы" - это претензия на часть ниши Явы?

Да нет, это они отьели нишу у PHP и Pythonа, нишу "сайтов за 5 мин, которые делаются для удовлетворения своего эго и за которые все равно никто деньги не платит". Ибо производительный веб-магазин или CMS систему для lenta.ru/cnn.com никто на рельсах не пишет

>Да. Если речь о производительной нише - то можно я буду D с Java сравнивать?

Можно. Если дашь ссылку на скачать хотя бы редактор уровня jedit.org, написанный на D, или, не побоюсь этого слова, IDE. А так, язык на котором ничего не написано vs язык, на котором написана половина софта в мире. Ничего себе сравнение

>А что, на Java написан хоть один промышленный SQL Server?

Derby вполне себе работает в своих нишах. Ссылку на ibm.com дать?

>А исходная задача предполагала создание SQL сервера, или все-таки прослойки сежду сокетами и БД?

А что, прослойка не обязана быть производительной? Типа "пока БД будет выбирать RecordSet, наша прослойка все успеет пощитать"? Так?

Знаешь, чем мне LOR нравится по сравнению с другими форумами? Тем, что здесь прослойка выдает страницы с задержкой ~1сек. Только forum.ixbt.com генерит страницы с такой же скоростью, остальные форумы на похапэ/Ikonboard далеко за 2-3 сек.

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

> Ибо производительный веб-магазин или CMS систему для lenta.ru/cnn.com никто на рельсах не пишет

А что же у автора рельсов рестарится по 10 раз в день, сайт Васи Пупкина?

> Можно. Если дашь ссылку на скачать хотя бы редактор уровня jedit.org, написанный на D, или, не побоюсь этого слова, IDE

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

А jedit - гадость из-за неродного UI. Можно я им не буду пользоваться? Спасибо что разрешили.

> Derby вполне себе работает в своих нишах. Ссылку на ibm.com дать?

Ниша Derby - известна.

> >А исходная задача предполагала создание SQL сервера, или все-таки прослойки сежду сокетами и БД?

> А что, прослойка не обязана быть производительной?

А что там зависит от языка? ssl.receive, someORM.putData ?

> Знаешь, чем мне LOR нравится по сравнению с другими форумами? forum.ixbt.com генерит страницы с такой же скоростью, остальные форумы на похапэ/Ikonboard далеко за 2-3 сек.

Это кстати ничего, что лор на собсном сервере, а сайты на похапе - неясно на чем? Нет, я верю, что похапе - тормоз, но тем не менее.

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

>А что же у автора рельсов рестарится по 10 раз в день, сайт Васи Пупкина?

Да, какой-то блог нелепый, и не 10 раз а 400.

>Это кстати ничего, что лор на собсном сервере, а сайты на похапе - неясно на чем? Нет, я верю, что похапе - тормоз, но тем не менее.

Да ясно, на чем. forum.ixbt.com на 8-процессорном сервере etergo, в отличии http://www.linux.org.ru/server.jsp, ( там баннер есть), да любой форум с числом мемберов >10000 хостится на выделенном железе, а не с кучей сброда.

>Екий вы виляющий.

А что, на D ни IDE не пишут, ни SQL Serverы, ни сайты, ни числодробилки? Это что, академический язык? На нем хоть что-то написано?

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

После традиционного обсуждения "Java vs. все-все-все", как-то даже неудобно возвращаться к Scala. Тем более с таким глупеньким комментом: tiobe.com говорит, что Scala не слишком-то набирает популярность. Появилась, название своё показала и ушла в небытие.

Вообще актуальнее сравнивать сейчас Scala и Groovy.

anonymous
()

Бегло просмотрел всё вышесказанное. Почему-то вспомнился анекдот приписываемый Б. Шоу.

Короче, суть: Спорт продлевает жизнь на 10 лет, но на занятия им уходит 20... 8)

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

Просто каждый язык рулит исключительно из-за своей инфраструктуры, и без неё практически бессмысленен, каким бы он крутым не был. Scala благодаря тома, что JVMная, получила в качестве наследия часть java-инфраструктуры, но она вся заточна под java и выйгрыш использование scala будет минимальный. + таки Eclipse/Scala - не сравнимо слабее Eclipse/JDT и это тоже немалый -. Вообще просто наверно стоит подождать, пока не создастся качественные библиотеки на scala в которых будет _сильно_ удобнее использовать scala нежели java. Иначе в scala нет смысла.

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

>>Да. Если речь о производительной нише - то можно я буду D с Java сравнивать?

> Можно. Если дашь ссылку на скачать хотя бы редактор уровня jedit.org, написанный на D, или, не побоюсь этого слова, IDE.

http://www.dprogramming.com/entice.php

И кстати, D 1.0 вышел всего год назад. А jEdit на SourceForge появился в конце 1999-го, т.е. через пять лет после релиза Java 1.0. Поэтому не корректно сравнивать объем софта для еще не стабилизировавшегося языка с объемом софта для Java.

А вот, например, скорость компиляции D vs Java. Или скорость работы D vs Java сравнить можно уже сейчас, на http://shootout.alioth.debian.org/ к примеру.

> А так, язык на котором ничего не написано vs язык, на котором написана половина софта в мире. Ничего себе сравнение

Какие-нибудь достоверные данные насчет половины софта в мире на Java будут приведены? Или это такая же гипербола, как софт обслуживающий 300 транзакций в секунду, собранный за 4 дня из OpenSource-компонентов на коленке крутейшим анонимусом?

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

Да подстава Д в том - что это очередная смесь Java + C++. Как и с#. Только с# - ближе к java, а D - к С++. Этот язык не привнёс ничего новго. Он по синтаксису - он уже навороченней с++, по гибкости - чуть-чуть дальше с++, но не сильно. менно от этих всех наворотов и сваливаешь на простую понятную и гибкую java.

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

> Да подстава Д в том - что это очередная смесь Java + C++ [...] Этот язык не привнёс ничего новго.

Ха-ха. Даже если игнорировать факт, что Ява - это Си++, разбавленный чертовой уймой всего, D и не претендует на особую новизну.

> менно от этих всех наворотов и сваливаешь на простую понятную и гибкую java.

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

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

Гибкость -это не возможность разврата вроде boost/lambda - а reflection например. dynamic class loading и т.д. Ява - это ни разу ни с++, там _сишный_ (а не ++) _синтаксис_. когда наконец это поймут?

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

> Гибкость -это не возможность разврата вроде boost/lambda - а reflection например. dynamic class loading

Главное - правильно определить термины: назвать то, что есть в Яве, "гибкостью", то, чего нет - "развратом", и вуаля :D

> Ява - это ни разу ни с++, там _сишный_ (а не ++) _синтаксис_.

Да? И где в Си ключевое слово new (кстати, совершенно лишнее в Яве). try/catch? Да тот же class? :)

Это не говоря о том, что Си не является объектно-ориентированным, и о том, что Ява начиналась как упрощенный Си++ (почитай историю создания Явы).

> когда наконец это поймут?

"We were after the C++ programmers." - Guy Steele, co-author of the Java spec.

Впрочем, к Скале это отношения не имеет... Но характерно, что из отметившихся тут явистов никто не изъявил желания на нее перейти.

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

1. с с++ перекочевало слишком мало. равзве что часть ключевых слов. по этому я говорю - синтаксис. с с можно сказать перекочевало больше в процентном отношении.

2. after the c++ programmers ну и что? в джаве слишком мало с++.

3. Явистов тут отметлось маловато для статистики =).

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

> с с можно сказать перекочевало больше в процентном отношении.

Блин, этого я искренне не понимаю. Что в Яве от Си, конкретно?

> 3. Явистов тут отметлось маловато для статистики =).

Это тоже показательно.

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

ситаксис. стейтменты - if, for, while etc(блин, не могу перевести =) - почти все теже что и в с. экспрешны - тоже в большинстве. а вот синтаксис объявления классов - уже не тот по сравнению с с++. некоторые ключевые слова с++ - есть, но используются они по другому (даже new имеет чуть другую конструкицю). уж не говоря о том, что семантика совсем другая (по сравнению с с++ почти везде.) Дженерики если вспомните - так кроме того что используется <> там вообще ничего общего нет. по этому я и говорю, можно говорить разве что о Сшном ситаксическом наслоедии. и в очень малой - от с++. А вообще - то что никто переходиь не собирается видно по моему уже по сайту. Хотя вообще мне язык понравился. Раньше страдал "изобретение ЯП" (ну как и все наврено) - приблизительно таким себе и представлял.

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

> Да подстава Д в том - что это очередная смесь Java + C++.

Лично я не представляю, как можно смешать Java и C++. Ведь сама по себе Java -- это сильно урезанный C++ + сборка мусора + виртуальная машина.

А D -- это как раз исправленный C++ с добавленной сборкой мусора.

> Как и с#. Только с# - ближе к java, а D - к С++. Этот язык не привнёс ничего новго. Он по синтаксису - он уже навороченней с++, по гибкости - чуть-чуть дальше с++, но не сильно. менно от этих всех наворотов и сваливаешь на простую понятную и гибкую java.

Мне кажется, что ни один мейнстримовый язык за последние годы не привнес ничего нового. Ни C++, ни Java, ни C#. Даже в обсуждаемой здесь Scala вряд ли есть принципиально новые моменты, скорее Scala -- это попытка адаптировать лучшее из имеющегося к JVM.

Кстати да, Java, по сравнению с D/C++, действительно понятнее. Но вот гибкость Java в чем? Какая же она гибкая, что ее можно найти разве что в нишах энтерпрайзного server-side и j2me для мобильных телефонов. Все остальное занято другими языками.

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

> Впрочем, к Скале это отношения не имеет... Но характерно, что из отметившихся тут явистов никто не изъявил желания на нее перейти.

Вряд ли Scala когда-нибудь сможет соперничать по популярности с Java. Сейчас у Scala есть две проблемы: она слишком динамично меняется (http://www.scala-lang.org/docu/changelog.html) и ее релизы слишком глючные (http://www.scala-lang.org/downloads/changes.html).

Кроме того, до недавнего времени по Scala был лишь один достаточно емкий источник информации -- ScalaReference на пару сотен страниц, написанных очень специфическим научным языком. Может быть новая книга улучшит ситуацию.

Но тем не менее, как язык Scala останется гораздо более сложным, чем Java. А это означает, что толпы программистов просто не освоят его. И вовсе не из-за своей тупости. А потому, что рядом будет несколько гораздо более простых языков, который будут позволять решать те же самые задачи. Пусть даже и чуть дороже, но не намного. Так что Scala вряд ли сможет серьезно потеснить Java на поле Java.

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

>Лично я не представляю, как можно смешать Java и C++. Ведь сама по себе Java -- это сильно урезанный C++ + сборка мусора + виртуальная машина.

А если поменять все буквы в слове "пир" то получится... =) Java - это очень сильно другое, "просто виртуальная машина" приводит к огромным изменениям. на джава eclipse возможен, а на с++ - уже нет. Кстати, джава таки привнесла много - это можно заценить по колличеству языков её копирующих =)

А на счёт Scala +1, тоже так думаю.

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

> а джава eclipse возможен, а на с++ - уже нет.

Веско. Убедительно.

Только вот факт в том, что на Яве сделали Эклипс, а на Си++ - нет. И всё,

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

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

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

> дело не в том написан на с++ или нет eclipse, а в том что на с++ написать его аналог - нереально.

Ты повторил свой предыдущий пост. Считай, что я повторил свой предыдущий ответ, и еще упомянул MSVS и KDevelop.

tailgunner ★★★★★
()

Хмм.. Возможно, неплохая книжка получится..

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

MSVS - совсем не то. ты пробовал писать для него плагины? я - пробовал. KDevelop - тоже не то. я не про ИДЕ для java. я про платформу его уровня. И ещё раз. вы говорите что java "разбавленный с++". а я говорю что это совсем другое, и привожу пример софта, который на джаве сделать можно (собсно он есть=) а на с++ - нереально (его и нету). я не холиварю c++ vs java, не говорю что c++ - отстой. я лишь говорю что они очень разные. вы в этом со мной не солгашаетесь?

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

> MSVS - совсем не то.

Почему? Тоже универсальная IDE. Или ты о том, что в ней не выделен RCP? Ну так MS это просто не нужно. Или ты про то, что его не называют "платформаой" (как Eclipse Platform)? Так это только слова.

> ты пробовал писать для него плагины?

Нет.

> KDevelop - тоже не то

И опять - чем же? Там уже идут разговоры о том, чтобы официально выделить уровень "платформы" :)

> и привожу пример софта, который на джаве сделать можно (собсно он есть=) а на с++ - нереально (его и нету)

Извини, но пример с Eclipse не убеждает. MSVS - как минимум серьезный конкурент Эклипсе.

> я не холиварю c++ vs java, не говорю что c++ - отстой. я лишь говорю что они очень разные. вы в этом со мной не солгашаетесь?

Соглашаюсь, конечно. Меня просто задевают безаппеляционные утверждения "на Си++ это сделать невозможно". Не "слишком дорого", "слишком долго", а "нереально".

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

1. "Слишком дорого" = нереально. Всё в конечном итоге ассемблер - так что теперь утверждать что msvs на асме можно написать? именно это вроде и значит слово "нереально", нет? Главня фишка в _лёгкости_ и _удобности_ расширения - на с++ такое имхо не создать вообще.

2. Eclipse я называю платформой потому что на базе него удобно создавать разные приложения, совершенно не обязательно ИДЕ, вообще с программированием не связанные. (eclipseplugincentrual - там можно много увидеть) и удобно расширять. Я вот для себя написал нужный мне плагинчик к нему за полтора часа, и это было очень просто. Ни MSVS ни тем более KDevelop такое не могут. В МСВС - это хотя бы теоретически возможно, только 1) не на .NET их писать - это значит помереть с COMом. Да и гибкость и удобность написания даже с .NET расширений совсееем не та. 2. (уже проавда не от с++ завсисит) документация - нулевая а сорцов нету =)

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

> "Слишком дорого" = нереально.

Ну если существование MSVS и KDevelop для тебя - не доказательства реальности написания программ вроде Eclipse на Си++, тогда замнем.

> В МСВС - это хотя бы теоретически возможно, только 1) не на .NET их писать - это значит помереть с COMом

Что MS не сделала своего PDE? Ну так это не является недостатком Си++.

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

Да нет, просто на С++ COM (или что то похожее) - едиснтвенный способ сделать что то аналогичное. Но это - уродливый костыль, которому ох как далеко по возможностям да и удобству... Хотя отсутстия внятного PDE делу не помогает. То есть оно даже есть, я скачивал - но по нему сразу видно - до еклипса ох как далеко. А КДевелоп насколько я знаю даже в модульном варианте прделагает расшияримость путём модификации сорцов, в compile-time. А это совсеееем не то.

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

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

В самом C++, как в языке, очень мало препятствий для создания компонентных приложений. Разве что, отсутствие сборки мусора, но и это решаемо. Главная сложность не в языке, а в инструментах (если интересно, см. http://www.rsdn.ru/forum/message/1243577.1.aspx)

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

Да, нет, просто проги на С++ _сложно_ расширять в _рантайме_ а не во время компиляции. Нету там нормального RTTI. И COM - это настолько же кастыль как GObject - в С. Он имеет теже + и -.

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

> Да, нет, просто проги на С++ _сложно_ расширять в _рантайме_ а не во время компиляции. Нету там нормального RTTI.

Если ограничиваться рамками одного компилятора, то ничего сложного в этом нет (см. dlopen/LoadLibrary). Более того, многие прикладные системы только на этом и держатся. А серьезные C++ фреймворки для этих целей готовые инструменты предоставляют (например, ACE Service Configuration Framework).

Что до Java, то если сравнивать ее с Ruby/Smalltalk или Erlang, то в ней вообще нельзя расширять программы в рантайме. Java-вский class loading по сравнению с этими языками такие же слезы, как dlopen в C++.

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

А вот и нет. Для джавы в некотором смысле вообще нет разницы - в рантайме расширять или во время компиляции. Это одинаково просто. И сравнивая с Ruby/Smalltalk - да так же расширять. И для того и для другого нет нужды что то особо делать для расширяемости. Не понял чем в них проще. dlopen-не даёт RTTI, нужно ещё кучу всего тащить (например h-файлы). B всё врещультате обрастёт препроцессором и прочими костылями.

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

> А вот и нет. Для джавы в некотором смысле вообще нет разницы - в рантайме расширять или во время компиляции. Это одинаково просто. И сравнивая с Ruby/Smalltalk - да так же расширять.

Ну попробуйте как-нибудь в рантайме сменить код Java-метода. Или добавить в Java-класс (уже загруженный в приложение класс) пару-тройку новых методов.

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

ммм. мы наверно про разное расширения говорим. при расширении программ типа eclipse - это не нужно. а то что вы сказали, это не расширение, это модификация-на-лету, и нужна для другого.

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

> ммм. мы наверно про разное расширения говорим.

Очень похоже на то.

> при расширении программ типа eclipse - это не нужно.

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

> а то что вы сказали, это не расширение, это модификация-на-лету, и нужна для другого.

Тем не менее, она была доступна в языках с VM (SmallTalk/Erlang) задолго до появления Java. И Java здесь не привнесла ничего нового.

Даже средства разработки для SmallTalk раньше показывали то, что IDE для Java научились делать относительно недавно.

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

Пот программами типа еклипс понимаются подобного рода платформы. не иде - а вообще. еклипс сам по себе мезжу прочим не иде - eclipse/jdt - это иде. кстати, я правильно понимаю, что к в ruby можно добавив в _код_ метод и получить его добавление в уже работающем приложении? в смысле hot-spot?

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

> Пот программами типа еклипс понимаются подобного рода платформы.
> не иде - а вообще. еклипс сам по себе мезжу прочим не
> иде - eclipse/jdt - это иде.

Понятно. Тогда, возвращаясь к тому, что D -- это Java + C++, можно
сказать, что D -- это не Java. Ведь для D ситуация с созданием
подобных на eclipse платформ точно такая же, как и у C++.

> кстати, я правильно понимаю, что к в ruby можно добавив в _код_
> метод и получить его добавление в уже работающем приложении? в
> смысле hot-spot?

Можно. Можно даже в самом методе изменить самого себя:

def demo
	puts "hello!"
	def self.demo
		puts "bye"
	end
end

demo
demo
demo

При запуске печатает:

hello!
bye
bye

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