русский
Germany.ruForen → Архив Досок→ Programmierung

Nemerle

415  1 2 alle
voxel3d коренной житель31.07.06 22:08
voxel3d
NEW 31.07.06 22:08 
Вот на что я бы с удовольствием перешёл на тех задачах, где мы используем сишарп: http://nemerle.org/Main_Page
Статья на русском языке: http://rsdn.ru/article/nemerle/NemerleIntro.xml
Quick guide to all Nemerle features: http://nemerle.org/Quick_Guide
Задолбал идиоцкий сишарп, для которого у нас .Net даже не 2.0. Тупой синтаксис для кухарок, с кастрированным мозгом и нерасширяемая семантика самого языка. А хочется хорошего! Вот такого:
В ответ на:
private foo(f : int -> int, v : int) : int
{
f(f(v));
}

Или такого:
В ответ на:
unless (match (a) { | 1 => true | _ => false })
Foo();

Или такого:
В ответ на:
try {
code
}
catch {
| e is ArgumentNullException => ...
| e is OverflowException => ...
| _ => ...
}

И такого:
В ответ на:
def a = 1;
def b = Dictionary.[string, int]();

Ещё такого:
В ответ на:
def newList = $[x | x in list1, x > 5, x < 30];

И ещё много чего хочется: "ленивые" вычисления, лямбда-функции, тупели, макросы изменяющие семантику языка, передачу функций как значений и...
Интересно, когда они до ума доведут сей продукт? Шефу моск я бы смог промыть, а всю остальную братию потряс бы крутым поворотом в их работе.
Dropbox - средство синхронизации и бэкапа файлов.
#1 
Russman коренной житель31.07.06 23:49
Russman
NEW 31.07.06 23:49 
in Antwort voxel3d 31.07.06 22:08
Перл, как всегда, рулит.
---
Баранки/GNU
#2 
Murr коренной житель01.08.06 00:38
Murr
NEW 01.08.06 00:38 
in Antwort voxel3d 31.07.06 22:08
Безнадега...
Мне вот завтра совсем простую штукенцию надо сделать - динамический массив, содержащий интерфейсы... потом построить навигацию - по интерфейсам, но с референсами на реальный объекта... ПОлучается три уровня одних интерфейсов, не считая, разумеется, стандартных имплементаций... вроде все понятно, но вот как я буду удалять объекты и соответственно - интерфейсы, не имея деструкторов - пока не придумкал...
В остальном - детище Билли - если работает и в чем-то совпадает с документацией - уже много...
#3 
  scorpi_ скептик01.08.06 00:58
NEW 01.08.06 00:58 
in Antwort voxel3d 31.07.06 22:08, Zuletzt geändert 01.08.06 01:12 (scorpi_)
Ну и кто не даёт промывать моск шефу, если язык ".NET compatible"?
ЗЫ Ну и кто недавно наезжал на С++, напирая на сложность языка? А это не сложно?
ЗЗЫ Кстати ещё ни разу не встречал человека, сразу легко и просто воспринявшего "functional programming". И причина у этого по-моему скромному мнению крайне проста - functional programming не является для человека нормальным способом мышления. Человек мыслит именно императивно - сделай то, сделай это, если третье сделай четвёртое. functional programming является ломкой естественного мышления человека, и именно поэтому оно не получило распостранения до сих пор, и не получит его в будущем.
#4 
voxel3d коренной житель01.08.06 01:04
voxel3d
NEW 01.08.06 01:04 
in Antwort Russman 31.07.06 23:49
> Перл, как всегда, рулит.
Да ну, нет, нифига он рулит. Его дизайн это тихий ужас. Не зря его в мейнстриме нет. Emerle очень многообещающе выглядит и весьма подходящая замена была бы шарпу, С++ и жабе, а на Perl перелезать, нафиг-нафиг...
Dropbox - средство синхронизации и бэкапа файлов.
#5 
voxel3d коренной житель01.08.06 01:08
voxel3d
NEW 01.08.06 01:08 
in Antwort scorpi_ 01.08.06 00:58
Он ещё не готов. Релиза ещё не было, у компилятора пока детские болезни -- баги при выдаче сообщений об ошибках и ещё что-то там; отладка пока не работает, некоторые фичи заявленные не работают пока, гуй не в чем рисовать пока. Сырой он, чтобы на него переходить.
Dropbox - средство синхронизации и бэкапа файлов.
#6 
voxel3d коренной житель01.08.06 01:15
voxel3d
NEW 01.08.06 01:15 
in Antwort Murr 01.08.06 00:38, Zuletzt geändert 01.08.06 01:55 (voxel3d)
А нафиг объекты удалять? Обнуляйте ссылки, сборщик мусора сам прибъёт всё когда-нибудь. Если ресурсы надо освобождать, имплементируйте IDisposable и дёргайте либо Dispose(), либо, что лучше, используйте using() {...} А так, строго говоря, никак - детерминированного уничтожения объектов в дотнете нет, хаки с:
obj = null;
GC.Collect();
GC.WaitForPendingFinalizers()
GC.Collect();


не в счёт.

Dropbox - средство синхронизации и бэкапа файлов.
#7 
voxel3d коренной житель01.08.06 01:47
voxel3d
NEW 01.08.06 01:47 
in Antwort scorpi_ 01.08.06 00:58
> ЗЫ Ну и кто недавно наезжал на С++, напирая на сложность языка? А это не сложно?
Это сложно. Хотя, мне это выучить проще, чем запомнить 26 уровней приоритетов операций в Perl. Но, вс╦-таки, это меньше спецификации C++ на тысячу страниц. Потом, Nemerle позволяет использовать в начале привычный императивный стиль написания, используя местами привычный си подобный синтаксис и используя привычную систему классов .Net. Разговоры же о сложности С++ не озачают, что на н╦м нельзя писать, я говорил о том, что у С++ есть недостатки.
> Кстати ещ╦ ни разу не встречал человека, сразу легко и просто воспринявшего "functional programming". И причина у этого по-моему скромному мнению крайне проста - functional programming не является для человека нормальным способом мышления. Человек мыслит именно императивно - сделай то, сделай это, если третье сделай четв╦ртое.
Нее, литературы мало нормальной, потом, функциональное программирование очень незнакомая вещь в стране, где вместо computer science преподают Паскаль в универах. Императивный тоже не совсем нормальный способ мышления. Надо голову сначала в машину Тьюринга превратить.
Dropbox - средство синхронизации и бэкапа файлов.
#8 
Murr коренной житель01.08.06 10:25
Murr
NEW 01.08.06 10:25 
in Antwort voxel3d 01.08.06 01:15
Дело в том, что удалить объект - просто. Занулил и нет его... вроде как нет... потому как физически он живет до обнуления последней ссыллки на себя - только после этого ГЦ его прибирает. У меня же как раз ситуация, когда я _не_ знаю всех ссылок... Диспозе в этом случае не работает...
Хаки - не устраивают. Да и накладно дергать ГЦ напрямую. Тестили это уже - чистит не все, времени занимает кучу... Для себя решил - прибивать не буду, буду помечать как убитые... благо, объем там не слишком большой...
#9 
Simple Nothing is f*cked01.08.06 11:23
Simple
NEW 01.08.06 11:23 
in Antwort voxel3d 01.08.06 01:47
В ответ на:
функциональное программирование очень незнакомая вещь в стране, где вместо computer science преподают Паскаль в универах.

Когда я учился в Ганноверском университете, первым языком был Scheme :-P
#10 
voxel3d коренной житель01.08.06 12:00
voxel3d
NEW 01.08.06 12:00 
in Antwort Simple 01.08.06 11:23
Я про Россию, полагаю, там у Скорпи было большинство знакомых-программистов, которым функциональщина сложна.
Dropbox - средство синхронизации и бэкапа файлов.
#11 
voxel3d коренной житель01.08.06 12:01
voxel3d
NEW 01.08.06 12:01 
in Antwort Murr 01.08.06 10:25
Так я не понял, проблема-то в чём, чтобы ресурсы освобождать или что?
Dropbox - средство синхронизации и бэкапа файлов.
#12 
  scorpi_ скептик01.08.06 12:23
NEW 01.08.06 12:23 
in Antwort voxel3d 01.08.06 12:00
Я давным-давно живу в Германии, и моё настоящее знакомство с программированием произошло уже здесь. Кстати машина Туринга и императивное программирование также требует разного мышления, и МТ также неестественна для человека.
#13 
Simple Nothing is f*cked01.08.06 12:46
Simple
NEW 01.08.06 12:46 
in Antwort voxel3d 01.08.06 12:01
Проблема в Билли :-D
#14 
voxel3d коренной житель01.08.06 13:24
voxel3d
NEW 01.08.06 13:24 
in Antwort scorpi_ 01.08.06 12:23
Тогда, странно это слышать. У меня нет ни одного знакомого, отучившегося в универе здесь, чь╦ обучение не начиналось с какого-нибудь ML.
Dropbox - средство синхронизации и бэкапа файлов.
#15 
  scorpi_ скептик01.08.06 13:50
NEW 01.08.06 13:50 
in Antwort voxel3d 01.08.06 13:24
При чём тут обучение? Я сказал, что фп не является для человека нормальным образом мышления.
PS В Хагене фп в обязательную программу не входит.
#16 
Murr коренной житель01.08.06 13:57
Murr
NEW 01.08.06 13:57 
in Antwort voxel3d 01.08.06 12:01
Проблема в том, что имеющийся механизм не устраивает, а альтернативы нету.
Если проще - то см. Симпла...
#17 
Murr коренной житель01.08.06 13:59
Murr
NEW 01.08.06 13:59 
in Antwort scorpi_ 01.08.06 12:23
МТ также неестественна для человека
-------
Не совсем. Шизоиды, на начальной стадии, как раз реализуют именно ее - сколь глубоко бы не забрались в свом бреду, но всегда возвращаются на ту же точку...
#18 
Simple Nothing is f*cked01.08.06 14:07
Simple
NEW 01.08.06 14:07 
in Antwort Murr 01.08.06 13:57
Я не мог удержаться ;)
#19 
Murr коренной житель01.08.06 15:58
Murr
01.08.06 15:58 
in Antwort Simple 01.08.06 14:07
Если бы больше людей не удерживались - Билли был бы вынужден признать, что делать софт он толком не умеет...
#20 
1 2 alle