. MZ>Она генерирует точно такой же p-code, как и Java , вроде бы.
Java не генерирует p-код. И это мало говорит о достоинствах
языка.
Насчёт Scala: не использую и не буду, т.к. не люблю всё маргинальное и ненормальное.
А кто верит шумихе — пусть посмотрит, что именно запрограммировано на Scala и стоит ли оно
того, чтобы шуметь.
Здравствуйте, eao197, Вы писали:
E>Так вот интересно, рассматривает ли уже кто-нибудь Scala как пригодный для промышленного программирования? Использует ли? Или планирует использовать? Категорически не собирается использовать? E>Буду признателен за любые соображения на эту тему.
Прошло некоторое время и возможно пора сделать апдейт. Scala прет на всех парах: 6 книг, прилично поддерживается всеми основными java-ide (Eclipse, Netbeans, IDEA), ее благословил Гослинг. Создатель Groovy, James Strachan, сказал что не стал бы делать Groovy, знай он о Scala в 2003 году.
Для тех, кому это важно, открыли страницу Scala in the Enterprise — где о положительном опыте использования пишут Twitter, Électricité de France Trading, Siemens, Sony Pictures Imageworks и.т.д
Здравствуйте, LaPerouse, Вы писали:
LP>void fun(a) //хз что сюда придет LP>{ LP> a.foo(); LP> b.bar(); LP>}
LP>Сделай, пожалуйста, мне стат. связывание foo и ошибку компиляции на bar.
Здравствуйте, MasterZiv, Вы писали:
>> Если серьезно, то Scala и Jython -- все-таки языки для разных задач. И
MZ>Ну, функциональные и объектно-ориентированные языки общего назначения, не MZ>понимаю, почему для разных.
>> если Scala как замена Java еще понятно, то вот Jython как замена Java...
MZ>То же самое. Лучшая Java.
Если под Jython-ом понимается именно Jython, то это же Python, только поверх Java. По производительности он вряд ли когда-нибудь сравниться со статически-типизированной Scala.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Аноним, Вы писали:
А> Как я понял, в Scala принято, как в Groovy получать содержимое текстового A> файла в строку вызоводм метода s=File.getLines А> А что, если у меня файл из пары гигов знаков, ну к примеру, лог? Мне не хватит памяти его весь вычитать.
Так getLines возвращает итератор (т.е. ленивый список), он не грузит сразу все в память. Поэтому в памяти хранится только текущая строчка.
Соответственно filter тоже будет порождать новый итератор.
Здравствуйте, eao197, Вы писали:
E>Так вот интересно, рассматривает ли уже кто-нибудь Scala как пригодный для промышленного программирования? Использует ли? Или планирует использовать? Категорически не собирается использовать?
Я не использовал Скалу промышленно — года полтора назад написал на ней компилятор ~3K строк — думаю версия тогда была 2.4. С тех пор пересобираю его под каждой новой версией — проблем не было.
Типоголизм я особенно не трогал — мне нужен был язык типа SML (дататипы, паттерн-матчинг, немного RAII и интероп с Java) — все это я в принципе получил, хотя из-за аннотаций типов порой трудно уместиться в 80 колонок.
Если мне придется еще что-нибуть писать под JVM — разумеется выберу Скалу, а под Net: F#
Сам Одерски некоторое время назад оценивал зрелость компилятора на уровне javac 1.4 (он был одним из разработчиков — если кто не знает).
Здравствуйте, Partisan, Вы писали:
P>Ещё и название Scala глупое.
Не глупое. Scala это лестница, la Scala. Лестница ведущая выше, и выше, и выше, и выше...
Как я понял, в Scala принято, как в Groovy получать содержимое текстового файла в строку вызоводм метода s=File.getLines
А что, если у меня файл из пары гигов знаков, ну к примеру, лог? Мне не хватит памяти его весь вычитать. Как в этом случае поступают? Да, если надо погрепать, т.е. выделить только строки, содержащие какую-то подстроку, то можно как-то getLines скормить фильтр, File.getLines filter {smthn}. А если мне кажду строку например надо преобразовать и записать в базу? Как вообще в таких случаях поступают в ФЯ, ФП?
Во всех блогах объясняют детали параметризации типов и тонкости карринга и хвостовой рекурсии, а куда податься новичку столкнувшемуся с практической задачей в новой обстановке?
В Scala даже while (b=stream.getbyte !=-1 ){} не работает, как в java, ибо присвоение возвращает всегда Unit
eao197 пишет:
> решился использовать ее. Так как мне этот язык показался несколько > переусложненным, слишком динамично меняющимся и недостаточно качественно
SCALA переусложнённая ? Ну, извини ...
SCALA — это МОЩЬ !
> Так вот интересно, рассматривает ли уже кто-нибудь Scala как пригодный > для промышленного программирования? Использует ли? Или планирует > использовать? Категорически не собирается использовать?
Ну я не вижу, почему бы её не использовать.
Она генерирует точно такой же p-code, как и Java , вроде бы.
Ну, может конечно неоптимально генерировать. Но далее вроде
бы уже на уровне p-code-а Java-машина докомпилировывает
и оптимизирует.
Принципиально огромной накладухи там вроде бы нет,
ну т.е. я не заметил пока (в языке самом, не в реализации).
Я, конечно, пока не большой знаток, пока ещё не использовал,
но хочу что-то вместо Java. Либо scala, либо Jithon, либо CLOJURE.
Здравствуйте, MasterZiv, Вы писали:
MZ>А в чём тогда по-твоему разница между компилятором и интерпретатором ? MZ>Расскажи, пожалуйста, потому как штука сложная, где там интерпретатор, MZ>где компилятор --- уже давно нихрена не понятно.
Jython (как и IronPython) не полноценный компилятор в ява байткод, это грубо
говоря виртуальная машина для питона написанная на ява вместо си.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, thesz, Вы писали:
C>>>Недавно пробовал ещё раз. Scala в IDEA уже годиться для промышленного использования, единственное чего не хватает — это нормального отладчика с demangling'ом символов. T>>Очень меня порадовало это "я попробовал. для промышленного использование годится." C>Да. C>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE.
Да-да. А нормальность IDE определяется исключительно Cyberax.
Практически все IDE проходят у него сертификацию.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, valexey, Вы писали:
C>>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE.
V>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него.
Да даже если нужен простой текстовый редактор, да и вообще компьютер, у языка уже большие проблемы.
Здравствуйте, valexey, Вы писали:
C>>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE. V>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него.
Нет, IDE просто необходима в больших проектах, где исходников больше, чем один человек может охватить.
И нет, REPL и крутость языка не являются заменой.
Понимаю, для Хаскелистов это сложно представить — они обычно работают над небольшими проектами.
Здравствуйте, valexey, Вы писали:
V>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него.
После более-менее плотного знакомства со Scala пару лет назад, я не решился использовать ее. Так как мне этот язык показался несколько переусложненным, слишком динамично меняющимся и недостаточно качественно реализованным. Но время идет, ситуация, возможно, меняется. Сейчас Twitter использует Scala. Состоялся релиз web-фреймворка Lift. В блогах ScalaActors зачастую упоминаются в купе с Erlang-ом как образец использования модели актеров...
Так вот интересно, рассматривает ли уже кто-нибудь Scala как пригодный для промышленного программирования? Использует ли? Или планирует использовать? Категорически не собирается использовать?
Буду признателен за любые соображения на эту тему.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, MasterZiv, Вы писали:
>> решился использовать ее. Так как мне этот язык показался несколько >> переусложненным, слишком динамично меняющимся и недостаточно качественно
MZ>SCALA переусложнённая ? Ну, извини ... MZ>SCALA — это МОЩЬ !
Меня постоянно вводили в ступор такие вещи, как контравариантность и ко/контравариантные позиции аргументов.
MZ>Я, конечно, пока не большой знаток, пока ещё не использовал, MZ>но хочу что-то вместо Java. Либо scala, либо Jithon, либо CLOJURE.
Это напоминает перефразированное "Булгакова не читал..." -- не читал, но при случае прочитаю обязательно
Если серьезно, то Scala и Jython -- все-таки языки для разных задач. И если Scala как замена Java еще понятно, то вот Jython как замена Java... Ну разве что в области задач, в которых рулят скриптовые языки.
Собственно, вопрос упирается в то, считает ли кто-нибудь Scala достаточно стабильным языком, для того, чтобы тратить ресурсы на создание кодовой базы на Scala. Т.е. во главу угла ставится не столько мощность языка, сколько его собственная стабильность и наличие вокруг него достаточно развитой инфраструктуры (в виде коммунити, базы пользователей, инструментов и документации).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 пишет:
> Это напоминает перефразированное "Булгакова не читал..." -- не читал, но > при случае прочитаю обязательно
да читал я, читал. И, кстати, не Булгакова, а Пастернака.
> Если серьезно, то Scala и Jython -- все-таки языки для разных задач. И
Ну, функциональные и объектно-ориентированные языки общего назначения, не
понимаю, почему для разных.
> если Scala как замена Java еще понятно, то вот Jython как замена Java...
То же самое. Лучшая Java.
> Ну разве что в области задач, в которых рулят скриптовые языки.
При чём тут скриптовость ?
Если под ним Java-машина лежит, уже всё, нет скриптовости.
Здравствуйте, MasterZiv, Вы писали:
>> Ну разве что в области задач, в которых рулят скриптовые языки.
MZ>При чём тут скриптовость ? MZ>Если под ним Java-машина лежит, уже всё, нет скриптовости.
Не повторяй больше эту глупость. Код родным питоном тоже машинные коды лежат, но это не делает его компилируемым.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
eao197 пишет:
> <http://www.jython.org/Project/>, то это же Python, только поверх Java. > По производительности он вряд ли когда-нибудь сравниться со > статически-типизированной Scala.
Чем там НЕстатическая типизация вам не угодила по производительности?
Ну, есть может там накладуха небольшая, но вы же не дефуры будете
на питоне решать. А там эти +- 2 милисекунды никому не помешают.
VladD2 пишет:
> Не повторяй больше эту глупость. Код родным питоном тоже машинные коды > лежат, но это не делает его компилируемым.
Я конечно не большой эксперт, но вроде бы как именно в C-Python
код (уже P-код, конечно) интерпретируется. JAVA имеет Jit.
В питоне вроде бы его нет.
А в чём тогда по-твоему разница между компилятором и интерпретатором ?
Расскажи, пожалуйста, потому как штука сложная, где там интерпретатор,
где компилятор --- уже давно нихрена не понятно.
Здравствуйте, MasterZiv, Вы писали:
>> <http://www.jython.org/Project/>, то это же Python, только поверх Java. >> По производительности он вряд ли когда-нибудь сравниться со >> статически-типизированной Scala.
MZ>Чем там НЕстатическая типизация вам не угодила по производительности?
В данной теме это уже оффтопик. Предлагаю его не развивать, тем более, что священных войн static vs dynamic на RSDN отгремело уже достаточно.
MZ>Ну, есть может там накладуха небольшая, но вы же не дефуры будете MZ>на питоне решать. А там эти +- 2 милисекунды никому не помешают.
Не дифуры. На данный момент я занимаюсь нагруженными серверами и, временами, обработкой больших объемов данных. Лишние миллисекунды мешают, иногда очень сильно.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, MasterZiv, Вы писали:
MZ>А в чём тогда по-твоему разница между компилятором и интерпретатором ? MZ>Расскажи, пожалуйста, потому как штука сложная, где там интерпретатор, MZ>где компилятор --- уже давно нихрена не понятно.
Ну нет — разница между компилятором и интерпретатором на практике весома, груба и зрима. Здесь
представлена демонстрация разницы для IronPython.
Если же мы воспользуемся jythonc версии 2.2.1 для компиляции того же самого примера
# Fibonacci numbers moduledef fib(n): # write Fibonacci series up to n
a, b = 0, 1
while b < n:
print b,
a, b = b, a+b
def fib2(n): # return Fibonacci series up to n
result = []
a, b = 0, 1
while b < n:
result.append(b)
a, b = b, a+b
return result
Здравствуйте, MasterZiv, Вы писали:
MZ>VladD2 пишет:
>> Не повторяй больше эту глупость. Код родным питоном тоже машинные коды >> лежат, но это не делает его компилируемым.
MZ>Я конечно не большой эксперт, но вроде бы как именно в C-Python MZ>код (уже P-код, конечно) интерпретируется. JAVA имеет Jit. MZ>В питоне вроде бы его нет.
MZ>А в чём тогда по-твоему разница между компилятором и интерпретатором ? MZ>Расскажи, пожалуйста, потому как штука сложная, где там интерпретатор, MZ>где компилятор --- уже давно нихрена не понятно.
Раз в вирт. машине отсутствует поддержка динамических языков, то как вообще можно скомпилировать pyhton-код в байт-код?
obj.foo() — во что это будет компилироватья?
Может и можно, только это будет уже все что угодно, но не динамически типизированный Puthon в сегдняшнем виде.
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
LP>obj.foo() — во что это будет компилироватья?
LP>Может и можно, только это будет уже все что угодно, но не динамически типизированный Puthon в сегдняшнем виде.
Компилировать динамический язык вполне реально, тот же PyPy http://codespeak.net/pypy/dist/pypy/doc/ умудряется большую часть среднетипичного кода трансформировать в статитически типизированный RPython.
Да и явовские JIT'ы ведут свою родословную от JIT динамически типизированного Smalltalk'а.
Здравствуйте, Qbit86, Вы писали:
Q>С добавлением Dynamic Language Runtime в .NET 4.0 ситуация для IronPython'а должна улучшиться.
DLR, собственно, в IronPython и появился. Они просто его оттуда вычленят и сделают более доступным для других в виде части фреймворка. Сам IronPython от этого никак не изменится.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, LaPerouse, Вы писали:
LP>>obj.foo() — во что это будет компилироватья?
LP>>Может и можно, только это будет уже все что угодно, но не динамически типизированный Puthon в сегдняшнем виде.
FR>Компилировать динамический язык вполне реально, тот же PyPy http://codespeak.net/pypy/dist/pypy/doc/ умудряется большую часть среднетипичного кода трансформировать в статитически типизированный RPython. FR>Да и явовские JIT'ы ведут свою родословную от JIT динамически типизированного Smalltalk'а.
Мне околопитоновское окружение абсолютно неизвестно, я просто исхожу из общих рассуждений о невозможности скомпилировать динамический язык в статический байт-код. Причина очевидна — нет информации о типе и взять ее неоткуда, разве что не прогнать программу в интерпретаторе и посмотреть в рантаймовые типы, делая стат. связки если можно и транслировать в сообщение об ошибке компиляции NoSuchMethodException когда нельзя. Чудес не бывает.
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, z00n, Вы писали:
Z>Здравствуйте, eao197, Вы писали:
E>>Так вот интересно, рассматривает ли уже кто-нибудь Scala как пригодный для промышленного программирования? Использует ли? Или планирует использовать? Категорически не собирается использовать?
Z>Я не использовал Скалу промышленно — года полтора назад написал на ней компилятор ~3K строк — думаю версия тогда была 2.4. С тех пор пересобираю его под каждой новой версией — проблем не было.
Z>Типоголизм я особенно не трогал — мне нужен был язык типа SML (дататипы, паттерн-матчинг, немного RAII и интероп с Java) — все это я в принципе получил, хотя из-за аннотаций типов порой трудно уместиться в 80 колонок.
Z>Если мне придется еще что-нибуть писать под JVM — разумеется выберу Скалу, а под Net: F#
Z>Сам Одерски некоторое время назад оценивал зрелость компилятора на уровне javac 1.4 (он был одним из разработчиков — если кто не знает).
Я где-то с годик назад смотрел скалу и вроде как паттерн матчинг был там совсем никакой, вроде как можно было делать сопоставление только для одного объекта, или я это путаю скалу с чем-то другим?
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
Здравствуйте, LaPerouse, Вы писали:
LP>Мне околопитоновское окружение абсолютно неизвестно, я просто исхожу из общих рассуждений о невозможности скомпилировать динамический язык в статический байт-код. Причина очевидна — нет информации о типе и взять ее неоткуда, разве что не прогнать программу в интерпретаторе и посмотреть в рантаймовые типы, делая стат. связки если можно и транслировать в сообщение об ошибке компиляции NoSuchMethodException когда нельзя. Чудес не бывает.
Чудес не бывает, но для очень большого процента кода возможен статический вывод типов, притом используется спекулятивный вывод, то есть для одного и того же куска динамического кода генерируются несколько вариантов статически типизированного с разными типами, плюс еще используется прогон динамического кода со сбором статистики
о типах. Все это частично реализованно в PyPy, и практически полностью для Smalltalk.
Здравствуйте, LaPerouse, Вы писали:
LP>Я где-то с годик назад смотрел скалу и вроде как паттерн матчинг был там совсем никакой, вроде как можно было делать сопоставление только для одного объекта, или я это путаю скалу с чем-то другим?
LaPerouse пишет:
> Мне околопитоновское окружение абсолютно неизвестно, я просто исхожу из > общих рассуждений о невозможности скомпилировать динамический язык в > статический байт-код. Причина очевидна — нет информации о типе и взять > ее неоткуда, разве что не прогнать программу в интерпретаторе и > посмотреть в рантаймовые типы,
Так а в обычной Java-программе что, нет RTTI ? Нет указателей на
вездесущий java.lang.Object ?
Здравствуйте, MasterZiv, Вы писали:
>> Не дифуры. На данный момент я занимаюсь нагруженными серверами и, >> временами, обработкой больших объемов данных. Лишние миллисекунды
MZ>Так тогда вам и Java не пойдёт, вам С/С++ надо.
C++ у меня уже есть. Теперь хочется чего-нибудь более лаконичного и безопасного, с большими библиотеками (особенно для buzz-технологий вроде XML/HTTP/SOAP и пр.).
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, MasterZiv, Вы писали:
MZ>LaPerouse пишет:
>> Мне околопитоновское окружение абсолютно неизвестно, я просто исхожу из >> общих рассуждений о невозможности скомпилировать динамический язык в >> статический байт-код. Причина очевидна — нет информации о типе и взять >> ее неоткуда, разве что не прогнать программу в интерпретаторе и >> посмотреть в рантаймовые типы,
MZ>Так а в обычной Java-программе что, нет RTTI ? Нет указателей на MZ>вездесущий java.lang.Object ?
RTTI — он на то и ртти, что доступен во время выполнения и к компиляции ни малейшего отношения не имеет. java.lang.Object тоже абсолютно не при чем.
возьмем динамический код (просьба не смущаться на синтаксис явы)
class A
{
public void foo()
{
}
}
void main()
{
A a = new A();
foo(a);
}
void fun(a) //хз что сюда придет
{
a.foo();
b.bar();
}
Сделай, пожалуйста, мне стат. связывание foo и ошибку компиляции на bar.
... << RSDN@Home 1.2.0 alpha 4 rev. 1089>>
Социализм — это власть трудящихся и централизованная плановая экономика.
>> Не дифуры. На данный момент я занимаюсь нагруженными серверами и, >> временами, обработкой больших объемов данных. Лишние миллисекунды
MZ>Так тогда вам и Java не пойдёт, вам С/С++ надо.
Глупости. За пару миллисекунд на Java можно довольно много чего сделать. Особенно, после того как она "прогреется" и разгонится JITом.
Re[5]: Готова ли Scala к использованию?
От:
Аноним
Дата:
19.07.09 20:28
Оценка:
А>Так getLines возвращает итератор (т.е. ленивый список), он не грузит сразу все в память. Поэтому в памяти хранится только текущая строчка. А>Соответственно filter тоже будет порождать новый итератор.
scala.io.Source and I see you're using it here. There is a small problem with it, it loads the entire file in memory. The code in my file was used to process some large files which caused an out of memory exception if I used scala.io.Source.
грузит. Т.е. сначала грузится весь Source, а потом на массив в памяти получаем итератор
Re[6]: Готова ли Scala к использованию?
От:
Аноним
Дата:
20.07.09 09:06
Оценка:
А> Т.е. сначала грузится весь Source, а потом на массив в памяти получаем итератор
Может тогда это так и было, но это давно исправлено (В 2.7.0 такого уже нет).
Здравствуйте, eao197, Вы писали:
E>Собственно, вопрос упирается в то, считает ли кто-нибудь Scala достаточно стабильным языком, для того, чтобы тратить ресурсы на создание кодовой базы на Scala.
А зачем эта информация нужна? Ну, кто-то считает, кто-то не считает.
Ведь только тебе решат подойдет она тебе или нет. Качай последнюю версию, качай интеграцию с ёклипсом и пробуй.
А там, или подойдет, или нет.
E>Т.е. во главу угла ставится не столько мощность языка, сколько его собственная стабильность и наличие вокруг него достаточно развитой инфраструктуры (в виде коммунити, базы пользователей, инструментов и документации).
Ну, так мелкий проект написанный чисто для развлечения (и возможно решающий нужную задачу) поможет тебе это понять.
А вообще, языку уже не мало лет. Сам он пишется на себе и есть несколько проектов развиваемых на нем. Он просто не может быть не рабочим. Другое дело интеграция с ёклипсом/идеей и инфраструктура. Тут нужно опять же пробовать. Если все плохо, то или решат будешь ли ты мириться с этими проблемами, или бросать.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Готова ли Scala к использованию?
От:
Аноним
Дата:
12.10.09 09:42
Оценка:
Здравствуйте, eao197, Вы писали:
В связи с чем у меня к вам вопрос: как вы оцениваете сложность применения скалы в реальных проектах? Например:
1) Скала? В реальных проектах? Вы бы ещё на хаскеле писали;
2) Первые полгода тяжело, а потом привыкаешь;
3) Я вообще-то раньше на хаскеле писал, а на скале заставили; фигня это для начинающих программистов.
И связанный с ним второй вопрос: а другие участники проекта на скале вместе с вами могут писать? Варианты ответа вроде:
1) Говно вопрос!
2) Ну, пришлось объяснить им что к чему, но разобрались и сейчас пишут;
3) Нет, это для гениев, а гении не все;
4) Скала? В реальных проектах? См. вопрос 1.
VD>А вообще, языку уже не мало лет. Сам он пишется на себе и есть несколько проектов развиваемых на нем. Он просто не может быть не рабочим.
Кстати, одно из преимуществ java (перед теми же плюсами) была высокая скорость компиляции кода. Как с этим у скалы? Не придется ли до-олго ждать перекомпиляции проекта?
Здравствуйте, valexey, Вы писали:
VD>>А вообще, языку уже не мало лет. Сам он пишется на себе и есть несколько проектов развиваемых на нем. Он просто не может быть не рабочим.
V>Кстати, одно из преимуществ java (перед теми же плюсами) была высокая скорость компиляции кода. Как с этим у скалы? Не придется ли до-олго ждать перекомпиляции проекта?
Bootstrap компиляция компилятора и базовых библиотек занимает около получаса.
Здравствуйте, VladD2, Вы писали:
VD>А вообще, языку уже не мало лет. Сам он пишется на себе и есть несколько проектов развиваемых на нем. Он просто не может быть не рабочим. Другое дело интеграция с ёклипсом/идеей и инфраструктура. Тут нужно опять же пробовать. Если все плохо, то или решат будешь ли ты мириться с этими проблемами, или бросать.
Недавно пробовал ещё раз. Scala в IDEA уже годиться для промышленного использования, единственное чего не хватает — это нормального отладчика с demangling'ом символов.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, VladD2, Вы писали:
VD>>А вообще, языку уже не мало лет. Сам он пишется на себе и есть несколько проектов развиваемых на нем. Он просто не может быть не рабочим. Другое дело интеграция с ёклипсом/идеей и инфраструктура. Тут нужно опять же пробовать. Если все плохо, то или решат будешь ли ты мириться с этими проблемами, или бросать. C>Недавно пробовал ещё раз. Scala в IDEA уже годиться для промышленного использования, единственное чего не хватает — это нормального отладчика с demangling'ом символов.
Выделенное означает "они добили контекстное дополнение! я ж без него, как без рук."
Или что там ещё тебе надо было.
Очень меня порадовало это "я попробовал. для промышленного использование годится."
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали:
C>>Недавно пробовал ещё раз. Scala в IDEA уже годиться для промышленного использования, единственное чего не хватает — это нормального отладчика с demangling'ом символов. T>Выделенное означает "они добили контекстное дополнение! я ж без него, как без рук."
Угу.
T>Или что там ещё тебе надо было.
Компиляция, отладка, навигация по проекту, инспекции.
T>Очень меня порадовало это "я попробовал. для промышленного использование годится."
Да.
Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE.
Здравствуйте, thesz, Вы писали:
C>>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE. T>Да-да. А нормальность IDE определяется исключительно Cyberax.
Нет, просто достаточно посмотреть работает ли в ней контекстный автокомплит — это самая главная вещь, из которой строится уже всё остальное. Это кто угодно может сделать.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, thesz, Вы писали:
C>>>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE. T>>Да-да. А нормальность IDE определяется исключительно Cyberax. C>Нет, просто достаточно посмотреть работает ли в ней контекстный автокомплит — это самая главная вещь, из которой строится уже всё остальное. Это кто угодно может сделать.
Ну, вот в notepad работает контекстный автокомплит (что бы это не значило).
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
C>>>Я считаю, что язык не годен для промышленного использования в больших проектах, пока для него нет нормальной IDE. V>>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него. C>Нет, IDE просто необходима в больших проектах, где исходников больше, чем один человек может охватить.
А какой примерный минимальный размер такого большого проекта? (в строках кода)
Т.е. где грань когда уже становится нужна навороченная IDE?
Здравствуйте, thesz, Вы писали:
C>>Нет, просто достаточно посмотреть работает ли в ней контекстный автокомплит — это самая главная вещь, из которой строится уже всё остальное. Это кто угодно может сделать. T>Ну, вот в notepad работает контекстный автокомплит (что бы это не значило).
Ну вот, notepad не является IDE.
Здравствуйте, valexey, Вы писали:
V>>>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него. C>>Нет, IDE просто необходима в больших проектах, где исходников больше, чем один человек может охватить. V>А какой примерный минимальный размер такого большого проекта? (в строках кода) V>Т.е. где грань когда уже становится нужна навороченная IDE?
По общепринятому понятию — около 200000 строк.
Честно говоря, я вообще таких проектов на Хаскелле не знаю.
V>>>>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него. C>>>Нет, IDE просто необходима в больших проектах, где исходников больше, чем один человек может охватить. V>>А какой примерный минимальный размер такого большого проекта? (в строках кода) V>>Т.е. где грань когда уже становится нужна навороченная IDE? C>По общепринятому понятию — около 200000 строк. C>Честно говоря, я вообще таких проектов на Хаскелле не знаю.
Ну, например сам ghc > 200k строк только на хаскеле.
Здравствуйте, valexey, Вы писали:
C>>По общепринятому понятию — около 200000 строк. C>>Честно говоря, я вообще таких проектов на Хаскелле не знаю. V>Ну, например сам ghc > 200k строк только на хаскеле.
Оно не считается, его пишут те, кто идеально знают Хаскелл.
Здравствуйте, Cyberax, Вы писали:
V>>Ну, например сам ghc > 200k строк только на хаскеле. C>Оно не считается, его пишут те, кто идеально знают Хаскелл.
точнее сами его и создают
Люди, я люблю вас! Будьте бдительны!!!
Re[6]: Готова ли Scala к использованию?
От:
Аноним
Дата:
18.10.09 18:18
Оценка:
Здравствуйте, nikov, Вы писали:
N>Bootstrap компиляция компилятора и базовых библиотек занимает около получаса.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, thesz, Вы писали:
C>>>Нет, просто достаточно посмотреть работает ли в ней контекстный автокомплит — это самая главная вещь, из которой строится уже всё остальное. Это кто угодно может сделать. T>>Ну, вот в notepad работает контекстный автокомплит (что бы это не значило). C>Ну вот, notepad не является IDE.
Как так? Ведь работает?
PS
Всё, ухожу, ухожу, ухожу.
Не гоже мне, хаскель фаром редактирующему, рассуждать о высотах промышленного программирования.
Оставлю это более гордым, с меньшей рефлексией.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали:
C>>>>Нет, просто достаточно посмотреть работает ли в ней контекстный автокомплит — это самая главная вещь, из которой строится уже всё остальное. Это кто угодно может сделать. T>>>Ну, вот в notepad работает контекстный автокомплит (что бы это не значило). C>>Ну вот, notepad не является IDE. T>Как так? Ведь работает?
Ой, я не то написал. Следует читать: "Ну вот, notepad является IDE."
Здравствуйте, Аноним, Вы писали:
N>>Bootstrap компиляция компилятора и базовых библиотек занимает около получаса.
А>Саму Скалу компилить из исходников? Зачем?
В trunk head есть некоторые новые фичи, которые еще не вошли в бинарные дистрибутивы.
Re: Готова ли Scala к использованию?
От:
Аноним
Дата:
20.10.09 08:49
Оценка:
Как может быть инструмент готов к промышленному использованию, если он активно меняется?
Я начал использовать Java с 1.4.
Кардинально она не поменялась. По крайней мере все что работало в 1.4 работает в 1.5 и 1.6.
Может есть какие-то вещи, которые не работают, но я с ними не сталкивался.
А что в Scala?
В 2.8 будет куча глобальных изменений, которые ломают весь предыдущий код.
Да — это нужные и полезные изменения.
Но кто станет писать что-то серьезное на инструменте, который через пол года изменится так, что код работать не будет?
Кроме того некоторые вещи в Scala как-то надуманы.
Например Operator Precedence.
Какая-то эта фича очень синтетическая.
Вобщем смотреть на Scala можно, играться с ней тоже можно, даже писать что-то не для продакшена можно.
Но не больше.
PS.
Слышал краем уха что C#, вернее дотнет, от версии к версии тоже местами не очень совместим.
Это так?
Здравствуйте, Аноним, Вы писали:
А>Слышал краем уха что C#, вернее дотнет, от версии к версии тоже местами не очень совместим. А>Это так?
Нет. Версии дотнета 2.0, 3.0, 3.5 использовали один и тот же рантайм версии 2.0.50727. Следующая версия Фреймворка будет^W основана на новой версии CLR, но 1) совместимость остаётся, 2) разные версии фреймворка спокойно уживаются side by side.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, valexey, Вы писали:
V>>>>Есть мнение, что если языку требуется навороченная IDE, то с этим языком что-то не так, и IDE играет роль костыля для него. C>>>Нет, IDE просто необходима в больших проектах, где исходников больше, чем один человек может охватить. V>>А какой примерный минимальный размер такого большого проекта? (в строках кода) V>>Т.е. где грань когда уже становится нужна навороченная IDE? C>По общепринятому понятию — около 200000 строк.
C++/Java строки надо делить на 10.
C>Честно говоря, я вообще таких проектов на Хаскелле не знаю.
ghc?
haskell-libs?
ghc+haskell-libs?
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, valexey, Вы писали:
C>>>По общепринятому понятию — около 200000 строк. C>>>Честно говоря, я вообще таких проектов на Хаскелле не знаю. V>>Ну, например сам ghc > 200k строк только на хаскеле. C>Оно не считается, его пишут те, кто идеально знают Хаскелл.
Нет, не идеально.
Он же меняется постоянно.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Re[3]: Готова ли Scala к использованию?
От:
Аноним
Дата:
20.10.09 09:40
Оценка:
N>Примеры изменений, которые ломают весь предыдущий код — в студию.
Примеры привести не могу.
Но читая их мэйллист вижу что переколбасили массивы, и идет активное обсуждение изменения for comprehension.
Если что-то у пользователей не работает, то все время спрашивают, какую версию Scala они используют — 2.8 или предыдущие.
Здравствуйте, Аноним, Вы писали:
N>>Примеры изменений, которые ломают весь предыдущий код — в студию. А>Почитайте вот это — Why Scala 2.8 instead of Scala 3.0?
Там о бинарной совместимости — это нерелевантно ломанию кода.
Здравствуйте, thesz, Вы писали:
C>>По общепринятому понятию — около 200000 строк. T>C++/Java строки надо делить на 10.
И из-за сложности Хаскелля на 20 умножить.
C>>Честно говоря, я вообще таких проектов на Хаскелле не знаю. T>ghc? T>haskell-libs? T>ghc+haskell-libs?
А что-нибудь не библиотечно-компиляторное?
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, thesz, Вы писали:
C>>>По общепринятому понятию — около 200000 строк. T>>C++/Java строки надо делить на 10. C>И из-за сложности Хаскелля на 20 умножить.
Это взгляд менеджера, не программиста. Программист будет делить, поскольку сложность Хаскеля делает программирование проще.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, thesz, Вы писали:
C>>>Честно говоря, я вообще таких проектов на Хаскелле не знаю. T>>ghc? T>>haskell-libs? T>>ghc+haskell-libs? C>А что-нибудь не библиотечно-компиляторное?
Здравствуйте, Аноним, Вы писали:
А>Если что-то у пользователей не работает, то все время спрашивают, какую версию Scala они используют — 2.8 или предыдущие.
Дык, логично. Есть баги исправленные в новой версии и есть фичи появившиеся в новой версии. Если кто-то использует старую версию, то не странно, что он нарывается на баги и на отсутствие фич.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, nikov, Вы писали:
А>>И то что новые релизы не совместимы со старыми — вас не пугает?
N>Бинарная несовместимость решается перекомпиляцией проекта.
А если проект битстрипный?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Аноним, Вы писали:
А>И насчет бреда — я же сказал что про C# я слышал краем уха. Не надо так расстраиваться.
Я не расстраиваюсь. Но такие слухи характерны бабушкам сидящим на лавочках во дворе, а не программистам.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Готова ли Scala к использованию?
От:
Аноним
Дата:
21.10.09 11:43
Оценка:
VD>Я не расстраиваюсь. Но такие слухи характерны бабушкам сидящим на лавочках во дворе, а не программистам.
Это было не утверждение, а вопрос >>Это так?
Re[2]: Готова ли Scala к использованию?
От:
Аноним
Дата:
21.10.09 14:30
Оценка:
Здравствуйте, Аноним, Вы писали:
А>А что в Scala? А>В 2.8 будет куча глобальных изменений, которые ломают весь предыдущий код.
Кстати, есть такое дело. Скачал себе IntelliJ IDEA CE, к ней новый плагин Scala. Так вот, он не видит в упор простейший scala код, грит symbol scala not found. Глянул, а с плагином идет Scala 2.8 b2
Здравствуйте, Аноним, Вы писали:
А>Как может быть инструмент готов к промышленному использованию, если он активно меняется? А>В 2.8 будет куча глобальных изменений, которые ломают весь предыдущий код. А>Да — это нужные и полезные изменения. А>Но кто станет писать что-то серьезное на инструменте, который через пол года изменится так, что код работать не будет?
Scala для прогрессивных людей, которые не боятся, что у них что-то сломается (потому что у них есть тесты), и которые готовы потратить день на миграцию проекта на новую версию, которая существенно увеличивает возможности программистов.
Взгляните хотя бы на serializable continuations!
asato ma sad gamaya
Re[3]: Готова ли Scala к использованию?
От:
Аноним
Дата:
21.10.09 15:34
Оценка:
OG>Scala для прогрессивных людей, которые не боятся, что у них что-то сломается (потому что у них есть тесты), и которые готовы потратить день на миграцию проекта на новую версию, которая существенно увеличивает возможности программистов.
Здравствуйте, Аноним, Вы писали:
А>Ну когда-нибудь проект стабилизируется.
Ну тогда уже можно остаться на старой версии Scala.
asato ma sad gamaya
Re[4]: Готова ли Scala к использованию?
От:
Аноним
Дата:
21.10.09 18:10
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Но читая их мэйллист вижу что переколбасили массивы, и идет активное обсуждение изменения for comprehension.
Не массивы, а коллекции
Есть новый pdf
Scala 2.8 Collections
Martin Odersky, EPFL
October 2, 2009
1 Introduction
Scala 2.8 contains a major redesign of the collection libraries. This paper describes their API and architecture