Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.12;
Скачать: CL | DM;

Вниз

Язык, который всем нравится...   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.053 c
15-1161508815
Cyrax
2006-10-22 13:20
2006.11.12
Патч для Promt XT Family от лицензионного соглашения


15-1161682273
boriskb
2006-10-24 13:31
2006.11.12
HTML страницы ошибок


2-1161927953
ГореПрограммер
2006-10-27 09:45
2006.11.12
Колличество элементов динамического массива


1-1159801544
SpellCaster
2006-10-02 19:05
2006.11.12
Exception при закрытии проги


15-1161790219
oldman
2006-10-25 19:30
2006.11.12
Вот и до нас дошел прогресс... :(