Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
ВнизЯзык, который всем нравится... Найти похожие ветки
← →
ArtemESC © (2006-10-20 14:15) [0]Что должно быть в таком языке (программирования)?
← →
vidiv © (2006-10-20 14:16) [1]Телепатор =)
← →
Gero © (2006-10-20 14:18) [2]Именно.
← →
Sergey13 © (2006-10-20 14:18) [3]Мат. 8-)
← →
Johnmen © (2006-10-20 14:21) [4]
> Язык, который всем нравится...
Размечтался....
← →
ZeroDivide © (2006-10-20 14:24) [5]Телепатор телепатора!
← →
Jeer © (2006-10-20 14:25) [6]Такой тепленький, ласковый, мягкий - ну все-все чтоб умел.
← →
unknown © (2006-10-20 14:28) [7]
> ArtemESC © (20.10.06 14:15)
> Что должно быть в таком языке (программирования)?
Что бы на таком языке можно было сказать компьютеру
"Хочу к завтрему ERP. и штоб без глюков!"
и он все сделал :)
← →
Virgo_Style © (2006-10-20 14:28) [8]"
- Как написать неработоспособного монстра?
- Воспользоваться всеми этими советами одновременно!
"
(c)
← →
MBo © (2006-10-20 14:31) [9]схожая тема ;)
http://forum.sources.ru/index.php?showtopic=146913
← →
ZeroDivide © (2006-10-20 14:32) [10]А еще очень нужен фреймворк для фреймворков или может фреймворк фреймворков для фреймворков.
← →
Anatoly Podgoretsky © (2006-10-20 14:37) [11]Язык программирования 10 поколения
Пользователь компилятору - "Хочу базу данных!"
Компилятор пользователю - "Сделано, ошибки будем исправлять?"
Пользователь компилятору - "Хочу чтобы работала!"<BR>
Язык программирования 11 поколения
Компилятор пользователю - "Довай я может базу данных сделаю а ?"
Пользователь компилятору - "Делай что хочешь только меня нетрогай"
← →
Rule © (2006-10-20 14:44) [12]чтоб голосом говоришь а он все далет, типа "хочу запуздырить иконку в трей" и он это делает :-)
← →
Ганна Юхимівна (2006-10-20 14:55) [13]Сам факт знакомства с данным языком должен приносить деньги... без программирования.
← →
Тульский © (2006-10-20 14:59) [14]и кнопка "Косяк"
← →
Карелин Артем © (2006-10-20 15:04) [15]Сексуальная супермодель. Живая и приносящая утром кофе на блюдечке.
← →
Слоник_ (2006-10-20 15:05) [16]да ну вас =)
c# - лучше пока ничем не пользовался
← →
Rule © (2006-10-20 15:07) [17]Слоник_ (20.10.06 15:05) [16]
а пробовал вообще чемто кроме этого пользоваться ???
← →
DrPass © (2006-10-20 15:08) [18]
> Anatoly Podgoretsky © (20.10.06 14:37) [11]
Мог бы просто ссылку на свой сайт кинуть :)
← →
Слоник_ (2006-10-20 15:11) [19]
> Rule © (20.10.06 15:07) [17]
ну да, паскаль тот же =)
на c++ писал. пока учился - были студенческие поделки на c и asm.
/*холиварить не буду и других отговариваю*/
← →
TUser © (2006-10-20 15:16) [20]> MBo © (20.10.06 14:31) [9]
Про философский камень зря они там. Я даже формулу могу написать - Ag[AuCl4]
← →
Anatoly Podgoretsky © (2006-10-20 16:10) [21]
> Мог бы просто ссылку на свой сайт кинуть :)
Мог бы, но статья в защищенном месте, его надо знать, но могу посказать
http://www.podgoretsky.com/old
← →
StriderMan © (2006-10-20 16:29) [22]
> Ганна Юхимівна (20.10.06 14:55) [13]
> Сам факт знакомства с данным языком должен приносить деньги.
> .. без программирования.
Oracle
← →
Rule © (2006-10-23 12:13) [23]StriderMan © (20.10.06 16:29) [22]
не не оракл, а разные приблуды к R3, типа Axapta
← →
euru © (2006-10-23 13:38) [24]
> Rule © (23.10.06 12:13) [23]
В R/3 нет приблуды Axapta :)
← →
kaif © (2006-10-24 14:52) [25]Хороший язык должен поддерживать ООП, иметь развитый синтаксис работы с типизированными указателями, позволять вручную аллокировать/освобождать ресурсы (убирать мусор за собой) и иметь настройку битности указателей.
Указал настройку компилятору типа:
Pointer = array[0..3] of byte или
Pointer = array[0..7] of byte.
И еще хороший язык должен легко читаться и в нем должно быть запрещено в with перечислять более 1 объекта.
Хороший язык должен позволять создавать произвольно объекты как на стеке, так и и в куче, иметь однопроходный компилятор (как Object Pascal), и не превращать ООП в религию (как Java). Иметь мощный оператор цикла (как в C++ и Java) и простой switch без всяких break (как case в Pascal). Поддерживать множества хотя бы до 256 элементов, как Pascal, и алгебраические операции над ними.
Хороший язык должен иметь модульную структуру, когда в одном модуле можно рамещать более 1 класса и называть модули (файлы) произвольно (как это сделано в Pascal и C++, но не в Java).
Операторные скобки должны быть {}, а угловые скобки <> не должны в синтаксисе употребляться вовсе, так как они затрудняют чтение текстов и публикацию их в интернете.
Все это ИМХО, разумеется.
← →
MacroDenS © (2006-10-24 14:55) [26]русский + русский полуматерный
← →
zdm © (2006-10-24 15:05) [27]
> MacroDenS
И получим 1С :)
← →
zdm © (2006-10-24 15:07) [28]Нефиг велосипед изобритать, языки я думаю уже написаны, какой выбрать-это дело задачи,потребностей,вкуса и т.д. другое дело , среда разработки чтобы было задачней, потребностей, вкусней
← →
Bless © (2006-10-24 15:13) [29]
> kaif © (24.10.06 14:52) [25]
> и простой switch без всяких break
Тогда такую крутизну не сделаешь:void send(int* to, int* from, int count){
int n = (count+7)/8;
switch(count%8){
case 0: do { *to++=*from++;
case 7: *to++=*from++;
case 6: *to++=*from++;
case 5: *to++=*from++;
case 4: *to++=*from++;
case 3: *to++=*from++;
case 2: *to++=*from++;
case 1: *to++=*from++;
} while(--n>0);
}
:)
← →
Bless © (2006-10-24 15:14) [30]Ошибка вкралась. Исправляюсь.
void send(int* to, int* from, int count){
int n = (count+7)/8;
switch(count%8){
case 0: do { *to++=*from++;
case 7: *to++=*from++;
case 6: *to++=*from++;
case 5: *to++=*from++;
case 4: *to++=*from++;
case 3: *to++=*from++;
case 2: *to++=*from++;
case 1: *to++=*from++;
} while(--n>0);
};
}
← →
euru © (2006-10-24 15:43) [31]
> kaif © (24.10.06 14:52) [25]
Практически C# :)
> должно быть запрещено в with перечислять более 1 объекта
И всё-таки вместо запрета лучше позволить объектам в with назначать алиасы.
Ещё неплохо было бы наличие многомерных case (switch). Например:case a, b of
(1, 2), (5, 3): do12_53(); // выполнить при a=1, b=2 или a=5, b=3
(nil, 3): do_3(); // выполнить при a=любое, b=3
(5, nil): do5_(); // выполнить при a=5, b=любое
end;
Вместо двух циклов (с пред- и постусловиями) и конструкции, эмулирующей цикл с условием в теле цикла, ввести одинrepeat begin
...
{check <условие> [continue];}
...
end;
← →
Anatoly Podgoretsky © (2006-10-24 16:36) [32]
> Операторные скобки должны быть {},
Со всем согласен, кроме этого, хороший язык не должен использовать всякие магические значки, он должен быть строгим и понятным не профессионалу. Как минимум он должен допускать литеральную заменую подобного безобразия. А лучше полностью настраиваемый синтаксис языка, может мне синтаксис Лиспа или Форта нравится?
← →
kaif © (2006-10-24 16:47) [33]euru © (24.10.06 15:43) [31]
> должно быть запрещено в with перечислять более 1 объекта
И всё-таки вместо запрета лучше позволить объектам в with назначать алиасы.
Великолепная идея, между прочим.
Особенно если учесть тот факт, что with действительно кривой какой-то.
Допустим мне удобно использовать и я всегда использую (в отличие от некоторых клерикалов!) with в таких местах:
with MyQuery do
begin
Close;
ParamByName("...").AsInteger := ...;
ParamByName("...").AsInteger := ...;
...
Open;
end;
Однако допустим мне нужно передать указательна Query в качестве параметра в мою процедуру. Фингушки. Я не знаю как это сделать внутри with (может я чего-то не знаю - тогда извините)
Но мне приходится писать что-то вроде:with MyQuery do
begin
Close;
MyProcedure(MyQuery);
ParamByName("...").AsInteger := ...;
ParamByName("...").AsInteger := ...;
...
Open;
end;
Что, ИМХО, некрасиво, глупо и чревато.
Хорошо хотя бы self имеется и спасает в каких-то ситуациях (не этой). :(
А с алиасом было бы прекрасно. Я бы передал в таком случае алиас, как указатель на свой объект, который в with:with MyQuery alias m do
begin
Close;
MyProcedure(m);
ParamByName("...").AsInteger := ...;
ParamByName("...").AsInteger := ...;
...
Open;
end;
← →
kaif © (2006-10-24 16:49) [34]Совсем четко было бы так:
with MyQuery alias m do
begin
m.Close;
MyProcedure(m);
m.ParamByName("...").AsInteger := ...;
m.ParamByName("...").AsInteger := ...;
...
m.Open;
end;
← →
guav © (2006-10-24 16:56) [35]> в нем должно быть запрещено в with перечислять более 1 объекта.
да ! а лучше - запрещено в with перечислять более 0 объектов.
в бейсике хорошо придумали, что к объекту в with всё равно явный доступ через оператор .
> [34] kaif © (24.10.06 16:49)
> with MyQuery alias m do
> begin
> m.Close;
И оказывается что никакой with не нужен, а m - обывкнвенная переменная.
> и не превращать ООП в религию
да ! В частности, язык должен иметь нормалиный finally, а не как С++ .
← →
Anatoly Podgoretsky © (2006-10-24 17:00) [36]
var
M: ..
create
with m do
begin
← →
Celades (2006-10-24 17:07) [37]
> да ! В частности, язык должен иметь нормалиный finally,
> а не как С++ .
В С++ есть автоматические деструкторы, а они круче!
← →
guav © (2006-10-24 17:13) [38]> [37] Celades (24.10.06 17:07)
> В С++ есть автоматические деструкторы
Вот я как раз об этом:
и не превращать ООП в религию
> [37] Celades (24.10.06 17:07)
> а они круче!
у сишных деструторов два существенных недостатка: не вызываются гарантированно и нет стандартного общего для всех виртуального деструктора.
← →
Bless © (2006-10-24 17:16) [39]
> Celades (24.10.06 17:07) [37]
>
> В С++ есть автоматические деструкторы, а они круче!
Не в первый раз слышу этот довод, но еще ни разу не спрашивал:
а если мне в finally нужно выполнить действия, не связанные с освобождением ресурсов, автоматический деструктор тоже поможет?
← →
Celades (2006-10-24 17:19) [40]
> у сишных деструторов два существенных недостатка: не вызываются
> гарантированно и нет стандартного общего для всех виртуального
> деструктора
Это их достоинство. Если мне не ужно такое поведение я ливо сом котролирую время жизни объекта(new/delete), либо делаю метод Free(по аналогии с Delphi) и вызываю его сам у стековых объектов.
← →
guav © (2006-10-24 17:29) [41]> [39] Bless © (24.10.06 17:16)
Они предлагают ресурс в класс запуздырить.
Причём, т.к. при исключении в конструкторе деструкторы не будут вызваны - не более одного диамического ресурса на класс, потом уже такие классы использовать статически. И в стандартной библиотеке существуют стандартные шаблонные классы для разных ресурсов, таких как указатель на память, диамичесий массив... На этом месте я и "ниасилил" дальнейшее изучение С++
Вот кстати ещё пример - хороший язык должен буть таким чтобы необходимых для изучения и использования языка стандартных библиотек был мимимум.
> [40] Celades (24.10.06 17:19)
Ты про первоее или про второе. Если про первое, то с помощью Free ты не выкрутишься.
> сом котролирую время жизни объекта(new/delete),
А т.к без finally, то эти new/detete нужно поместить в класс, причём не более одного объекта на класс, иначе при исключениях delete вызываться не будет.
← →
euru © (2006-10-24 17:35) [42]
> kaif © (24.10.06 16:47) [33]
> with MyQuery alias m do
Необязательно вводить новое ключевое слово. В Delphi уже есть подходящее: as называется.
> Anatoly Podgoretsky © (24.10.06 17:00) [36]
Локальная переменная и алиас - всё-таки разные понятия.
← →
Celades (2006-10-24 17:36) [43]
> поместить в класс,
Да. smart_ptr и smart_array - сразными политиками владения, аллокации и освобождения памяти. Таким образом могу даже реализовать сборщик мусора, совершенно прозрачно для клиентского кода.
← →
Bless © (2006-10-24 17:39) [44]
> guav © (24.10.06 17:29) [41]
>
> > [39] Bless © (24.10.06 17:16)
>
> Они предлагают ресурс в класс запуздырить.
Это я в курсе. Но я ж спросил как раз совсем о другом. Чем помогут автоматические деструкторы, если нужно выполнить действия НЕ связанные с освобождением ресурсов.
Например:query.DisableControls;
try
....
finally
query.EnableControls;
end;{try}
Что мне тут в класс запуздыривать?
← →
Bless © (2006-10-24 17:42) [45]
> Bless © (24.10.06 17:39) [44]
> Это я в курсе. Но я ж спросил как раз совсем о другом.
Че-то написал и засомневался. Может обертки тут и помогут... Знатоки c++, как мой код из [44] будет в обернутом виде выглядеть?
← →
MacroDenS © (2006-10-24 17:55) [46]
zdm © (24.10.06 15:05) [27]
И получим 1С :)
Не для 1С потребуется неразбавленный продукт - (мат в чистом виде) * (20 грамм чисторусского напитка 96 градусов на каждую строчку кода)
← →
Celades (2006-10-24 18:12) [47]
> Bless © (24.10.06 17:42) [45]
Такой код - пример плохого проектирования. Не выполняется правило безопасности с точки зерения исключений. Если генерируется исключение - то, либо операция выполняется до конца(что в ряд ли, если сгенерировалось исключение), либо не изменяется состояние объектов. А значит твой код вполне может быть в дектруторе класса, который за собой "подчищает" окружение.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2006.11.12;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.051 c