Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Вниз

Кто что думает?   Найти похожие ветки 

 
P   (2007-06-03 23:20) [120]

Язык сам по себе не важен, как и библиотеки или технологии. Важен процесс производимый изделием и соответствие его требованиям заказчика.

Пишут же навороченный GUI на JavaScript+HTML = AJAX и никто не умер. Только тормозит это все жутко, зато есть возможность попонтоваться крутостью компа, на котором даже приложение на AJAX не тормозит.


 
antonn ©   (2007-06-03 23:31) [121]


> Пример:
>
> If (b > 100) then
>   a := a + b shr 2;
> else
>   a := a + b;
>
> на C все это займет одну строку:
>
> a += (b > 100) ?  (b >> 2) : b;

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


 
Defunct ©   (2007-06-03 23:36) [122]


> В понятности кода есть большой практический смысл (поддержка,
>  преемственность, коллективная разработка и т.п.) .


Никто не мешает на Си писать понятно для других.
Грамотно оформлять и добавлять коментарии.

> А какой смысл в компактности кода? Кому и зачем она нужна, эта компактность? Чтобы по клавишам меньше стучать?
Компактую запись проще охватить взглядом..
Функция на С, занимающая один экран, при реализации на Паскале может не уместиться на одном экране.. И вся читабильность кода будет "коту-под хвост", т.к. одним взглядом уже нелучится охватить алгоритм этой функции.

Здесь я преувеличиваю конечно, но смысл именно таков. То что стучать по кнопкам меньше - дополнительный бонус.


 
sniknik ©   (2007-06-03 23:47) [123]

> А какой смысл в компактности кода? Кому и зачем она нужна, эта компактность? Чтобы по клавишам меньше стучать?
ну не скажи... по клавишам это тоже важно... начинающим. когда я только учился, и набивал текст одним пальцем, я очень завидовал С-ишникам (на одном потоке было как бы два отдела) потому как им просто скобки {} поставить, а мне надо было писать begin end;... и т.д.
;о))

вообще шутки шутками, а если бы тогда заранее знал, что там писать больше, еще неизвестно чтобы выбрал...


 
isasa ©   (2007-06-03 23:48) [124]

Defunct ©   (03.06.07 22:42) [115]
Второй раз не выдержу. :)
Я бы не отождествлял оператор "условного присваивания"(...?...:...) с "условным оператором" (if ... else ...), т.к. в некоторых языках он именно только присваивание по выполнению условия(вычияляется все, затем присваивается). Короче, из разных опер.
Не зная нюансов, можно сильно нарваться -> ( а = (null!=b) ? d.field : null; ) . Да и способ написания не прозрачен. :)


 
Юрий Зотов ©   (2007-06-04 00:01) [125]

> Defunct ©   (03.06.07 23:36) [122]

> Никто не мешает на Си писать понятно для других.

Никто. Беда в другом - в том, что никто не мешает писать на Си и так, что через полгода даже сам не разберешься. Это я и называю - дыры в языке. Писать так же непонятно на Паскале - непросто, для этого опыт и талант нужен.

> Компактую запись проще охватить взглядом..

И труднее понять. И что толку в этом "все вижу, но ничего не понимаю"?

> Функция на С, занимающая один экран, при реализации на Паскале может
> не уместиться на одном экране.. И вся читабильность кода будет "коту-
> под хвост", т.к. одним взглядом уже нелучится охватить алгоритм этой
> функции.

Вы сами себе и ответили: "Здесь я преувеличиваю конечно".

> То что стучать по кнопкам меньше - дополнительный бонус.

Вы называете переменные так: a1, b37, i5 и т.д.? Или называете их "по-человечески", чтобы из названия был ясен смысл?

Называйте их как можно короче - меньше же по кнопкам стучать. Дополнительный бонус. И фиг с ним, со смыслом.


 
Defunct ©   (2007-06-04 00:12) [126]

Писать так же непонятно на Паскале - непросто, для этого опыт и талант нужен.
ну отчего же, ведь и на паскале можно объявлять переменные
"a1, b37, i5 и т.д."  
пользовать goto и т.п.


> Называйте их как можно короче - меньше же по кнопкам стучать.
>  Дополнительный бонус. И фиг с ним, со смыслом.


Это уже преувеличение с Вашей стороны. Вернемся к операторам +=, -= и т.д. Какой бы длины ни были переменные, в паскалевском аналоге текста будет вдвое больше.


 
Defunct ©   (2007-06-04 00:22) [127]


> Не зная нюансов, можно сильно нарваться ->
> ( а = (null!=b)  ? d.field : null; ) .


А тут все ок как синтаксисом так и с поведением.
Что вы хотели сказать этим примером?


 
исследователь   (2007-06-04 00:29) [128]

Начался очередной холивар...


 
Юрий Зотов ©   (2007-06-04 00:30) [129]

> Defunct ©   (04.06.07 00:12) [126]

Итак.

1. Синтаксис Си легко позволяет писать компактный, но непонятный код. Естественно, вреда от такой компактности гораздо больше, чем пользы.

2. Синтаксис Си позволяет писать и понятный код тоже - но тогда этот код, естественно, перестает быть компактным.

3. По п.2 Си - аналог Паскаля.

4. По п.1 Си отличается от Паскаля. На Паскале нельзя ЛЕГКО писать компактный, но непонятный код. Не получится.

5. Вывод: синтаксис Си ПЛОХ !!!


 
Defunct ©   (2007-06-04 00:52) [130]

> Юрий Зотов ©   (04.06.07 00:30) [129]

У Вас неточность в п.2.

>2. Синтаксис Си позволяет писать и понятный код тоже - но тогда этот код, естественно, перестает быть компактным.

Да код будет менее компактен чем это возможно, но тем не менее он будет более компактен чем на Паскале.

> 5. Вывод: синтаксис Си ПЛОХ !!!

то что синтаксис более ГИБОК - не значит, что он ПЛОХ...


 
Юрий Зотов ©   (2007-06-04 00:58) [131]

> Defunct ©   (04.06.07 00:52) [130]

Он плох не потому, что гибок, а потому что опасен. Он позволяет то, чего позволять не должен.


 
Eraser ©   (2007-06-04 00:59) [132]

> [120] P   (03.06.07 23:20)


> Пишут же навороченный GUI на JavaScript+HTML = AJAX и никто
> не умер.

пишут, живы пока.

> Только тормозит это все жутко

с кого это перепугу оно тормозит? работает быстрее чем без AJAX.


 
Real ©   (2007-06-04 01:18) [133]

"Сд.пр.кв.с.вс.уд.д.од.ин." - прочитав это, Остап понял что речь идет о том, что "Сдается прекрасная квартира со всеми удобствами для одинокого интеллегента" (с) Золотой теленок, И.Ильф, Е.Петров

Оригинал объявления написан в духе Си :-) То есть соблюденна самая "важная" часть исходника: краткость записи. Никогда не понимал почему это сишный компилятор так любит эту самую краткость. Ну да ладно, когда скорость процессоров мерялась десятками МГц - еще прокатывало что "скорость компиляции важна", хотя хороший программист вряд ли компилит свой проект каждые 10 минут :)

Имхо, сишникам нравится что код краткий и мало понятный (даже им самим спустя время) зато чайники смотрят на них как на полубогов. По-моему, этим простым человеческим качеством можно объяснить тягу к чисто машинным и кратким записям у поклонников Си. Почему в разговорном языке они не используют методики Васисуалия Лоханкина :)


 
Kostafey ©   (2007-06-04 01:18) [134]

Все, кажется, я наконец-то понял, что пытается втолковать Ю.З.

Речь идет прежде всего о коллективной разработке.
Самому Ю.З. в любом случае все равно на чем писать и что
читать (по одному из постов).
Но если кто-то другой будет использовать код написанный кем-то,
то вероятность того, что он быстрее и легче его поймет для
pascal будет выше чем для cpp.

Только и всего.


 
Kostafey ©   (2007-06-04 01:21) [135]

> зато чайники смотрят на них как на полубогов.

Я, например уважительно отношусь к тому, кто хорошо знает STL,
а не потому что код непонятен.


 
Real ©   (2007-06-04 01:22) [136]


> Но если кто-то другой будет использовать код написанный
> кем-то,
> то вероятность того, что он быстрее и легче его поймет для
> pascal будет выше чем для cpp.

С таким же успехом, можно сказать что "если писать книги черными символами на белом фоне, то вероятность того что читатели быстрее прочтут и поймут книгу, чем если писать салатовым шрифтом на фиолетовом фоне. Только и всего" :)

По-моему, вывода что код паскаля понятней для других - вполне достаточно чтобы закрыть обсуждение какой именно синтаксис более понятен и приближен к естественному.


 
Defunct ©   (2007-06-04 01:31) [137]

> Real ©   (04.06.07 01:18) [133]

Я конечно, понимаю что форум по Delphi, и доказывать, или говорить плохо о pascal здесь просто низя..
Но не доводите аргументацию до абсурда...
Cи код может быть написан абсолютно прозрачно для понимания, быть читабельным, и также иметь свою красоту. То что Си пригоден для коллективной разработки сомнений нет, иначе его бы просто нигде не применяли.


 
DrPass ©   (2007-06-04 01:31) [138]


> Kostafey ©   (04.06.07 01:18) [134]


> Но если кто-то другой будет использовать код написанный
> кем-то,
> то вероятность того, что он быстрее и легче его поймет для
> pascal будет выше чем для cpp.
>
> Только и всего.

Это "только и всего" на самом деле является одним из важнейших качеств программного кода. Ни один мало-мальски серьезный проект не пишется в одиночку. Это еще не говоря о том, что по твоему коду просто могут учиться другие {будущие} программисты, основывать свои программы на нем, брать его в качестве примера и т.д.


 
Kostafey ©   (2007-06-04 01:31) [139]

> С таким же успехом, можно сказать что "если писать книги
> черными символами на белом фоне, то вероятность того что
> читатели быстрее прочтут и поймут книгу, чем если писать
> салатовым шрифтом на фиолетовом фоне. Только и всего" :)

А что, тоже верно ! :)


> По-моему, вывода что код паскаля понятней для других - вполне
> достаточно чтобы закрыть обсуждение какой именно синтаксис
> более понятен и приближен к естественному.

Да, да, да. И большая точка.

Хотя, иногда, смастерив какой-нибудь эдакий велосипед на С
навроде изменения значений нескольких переменных в заголовке цикла,
да так, что чтобы тонять что же на само деле происходит, приходится
прочитывать код несколько раз, и при каждом перечтении изумляясь
на сколько оригинально получилось...отвлекся :)

Нельзя так писать. Такие веши неприемлемы для профессионального
программирования, а вот студентам для забавы, моском поиграть -
самое оно !


 
Kostafey ©   (2007-06-04 01:37) [140]

> Cи код может быть написан абсолютно прозрачно для понимания,
> быть читабельным, и также иметь свою красоту. То что Си
> пригоден для коллективной разработки сомнений нет, иначе
> его бы просто нигде не применяли.

Понял. Скажите, Вам с идиотами доводилось иметь дело?
Нет ? Вам повезло, ибо их довольно много.
Так вот о том речь, что на СPP реализовать свои замашки
неизмеримо проще чем на pascal.

P.S.
Вам повезло, ибо их довольно много.
Чуть не сказал: и один из них перед вами :))


 
Real ©   (2007-06-04 01:45) [141]


> Я конечно, понимаю что форум по Delphi, и доказывать, или
> говорить плохо о pascal здесь просто низя..

Что за бред, найдите мне в правилах что-то типа "запрещено негативные высказывания в адрес Паскаля (языка и Блеза :) а также Н.Вирта"? Имхо, идет обмен мнениями, если вам мое мнение неприемлимо, это не означает ваше самое правильное, а я пишу только ради политкорректности :)


> Но не доводите аргументацию до абсурда...
> Cи код может быть написан абсолютно прозрачно для понимания,
>  быть читабельным, и также иметь свою красоту. То что Си
> пригоден для коллективной разработки сомнений нет, иначе
> его бы просто нигде не применяли.

В том-то и грусть, писать прозрачно можно, но школа Си учит обратному: пишите кратко :) Язык конечно же ни в чем не виноват.  Особенно его последние версии.


 
Defunct ©   (2007-06-04 01:49) [142]


> Вам с идиотами доводилось иметь дело?
> Нет ? Вам повезло, ибо их довольно много.
> Так вот о том речь, что на СPP реализовать свои замашки
> неизмеримо проще чем на pascal.


Мысль ваша понятна, но надо принять во внимание, что Cpp все же достаточно сложен, и далеко не каждый идиот сможет на нем писать.. Все не так уж и плохо..


 
DrPass ©   (2007-06-04 01:52) [143]


>  надо принять во внимание, что Cpp все же достаточно сложен,
>  и далеко не каждый идиот сможет на нем писать

Он не настолько сложен, чтобы человек, имеющий базовые навыки программирования и достаточно амбиций, не смог сваять какого-нибудь программного уродца.


 
Defunct ©   (2007-06-04 02:33) [144]


> Он не настолько сложен, чтобы человек, имеющий базовые навыки
> программирования и достаточно амбиций, не смог сваять какого-
> нибудь программного уродца.


Я не думаю, что сваянный программный уродец (тем более в исходниках) "человека имеющего базовые навыки" мог бы представлять мало-мальский интерес для широкой публики, на чем бы он ни был написан.


 
Defunct ©   (2007-06-04 02:34) [145]

Я не думаю, что сваянный программный уродец (тем более в исходниках) "человека имеющего базовые навыки" мог бы представлять мало-мальский интерес для широкой публики, на чем бы он ни был написан.

Хотя сорри - как всегда есть исключения - AvtoShema Дмитрия О., но увы она не на C..


 
euru ©   (2007-06-04 02:40) [146]

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

А Паскаль - это чуть ли не естественный для обычных людей язык. Достаточно краткого знакомства, и любой внятно написанный на нём код будет таким же понятным, как и родной английский.

Сдаётся мне, что и С, и Паскаль - это одного поля ягоды. Это какой-то птичий язык, изобилующий различными сокращениями, специальными обозначениями, неестественными и иногда двусмысленными формами выражения понятий. Неужели вы уверены, что Паскаль (с ваших слов как самый понятный из этих двух языков) будет так же понятен обычному человеку с высшим образованием (я уж не говорю об упоминавшемся выше пятикласнике), как и обычный какой-нибудь диалект английского языка?


 
P   (2007-06-04 02:58) [147]


> Юрий Зотов ©   (04.06.07 00:58) [131]
>
> > Defunct ©   (04.06.07 00:52) [130]
>
> Он плох не потому, что гибок, а потому что опасен. Он позволяет
> то, чего позволять не должен.


Для написания программ на C/C++ нужны мозги, на Delphi - диплом ПТУ. Выпускник ПТУ - дешевле.


 
Слоник_   (2007-06-04 03:06) [148]

если не хватает естественности - на выручку приходёт 1С! :)
ну что поморщились? просили же понятного синтаксиса, хехе


 
Defunct ©   (2007-06-04 04:05) [149]

Юрий,
Я тут еще раз перечитал ваш спор..


> Перевод не "в лоб", он придуман. В исходной записи нет символа,
>  переводящегося как "увеличить". Есть символ, переводящийся
> как "сложить".


Вы в своем переводе выражения
a := a + b;
переводите конструкцию из двух символов ":=" как "присвоить".
В таком случае

Что нам мешает переводить конструкцию из двух символов "+=" как "увеличить на". И по аналогии
-= - уменьшить на
*= - умножить на
/= - резделить на
&= про "and"ить" с
^= проксорить с
>>= сдвинуть на
и т.д.


 
Думкин ©   (2007-06-04 08:46) [150]

Одно такое дорогого стоит:
if(a=5) {}
Надо всегда себя в тонусе держать при работе с рядом языков одновременно. Паскаль при подобном сматерится на уровне компилятора. Сишник, ПХПист же будет материться самостоятельно и по получении бага.


 
Игорь Шевченко ©   (2007-06-04 09:48) [151]

Наша сила - в наших пальцах.
Чем больше мы набираем слова begin, end,
выражения вида someidentifier := someidentifier + someanotheridentifier,
тем сильнее становятся мускулы пальцев и кистей рук, недалек тот день, когда программирующий на паскале легко прошибет пальцем двухдюймовую доску.


 
Однокамушкин   (2007-06-04 09:56) [152]


> Думкин ©   (04.06.07 08:46) [150]
> Одно такое дорогого стоит:
> if(a=5) {}

Ага... :) когда-то я долго не мог понять, зачем пишут так неестественно: if (5 == a)... потом узнал, что именно для того, чтобы не допустить этой ошибки... :)))))


 
Evgeny V ©   (2007-06-04 10:09) [153]


> Юрий Зотов ©   (03.06.07 12:55) [5]
> ...что все эти извращения типа i++ взамен ....

Си позиционировался как язык промежуточный между ассемблером и языками высокого уровня. И одним из распространных тогда языков , на котором функционировал UNIX и си на базе PDP 11 (В СССР примерные аналоги CM3, СМ4, СМ1420....) Так вот у команды I++. ++I, --I,I-- были скажем так прямые ассемблерные аналоги в акссембелере PDP11 типа (Rn)+ или +(Rn)... и т.д Где Rn - рассшифровывается как регистр номер..  Так, что для многих в те времена эта команда была знакома и не вызывала неудобств в чтении. В 80-е годы кстати на машинах этого класса си уступал только ассемблеру в размере кода и скорости выполнения. Меняется класс машин, класс компиляторов, процессоров, одним словом проходит время - меняется и то, как мы видим реализацию языков программирования. Но никто не мешает мне написать вместо I++ ->   I=I+1 ни сейчас, ни тогда не мешал. Более того макрос (хот можно такие насооздавать, что и сам черт ногу сломит) может это перевести в дельфийский Inc, если вам так удобнее.
Все дело в привычке, мне кажетcя это и сейчас удобным писать на C# I++, особенно в теле цикла например. То же в Java. А потом чем это хуже Inc в дельфи? Дело привычки, если уж идти к простоте языка, то надо писать на Обероне ИМХО:-))  

> Думкин ©   (04.06.07 08:46) [150]


Согласен, бывают у людей ... ошибки из-за этого, есть плюсы у компилятора паскаля, не спорю, хотя warning таки у меня си-компилятор дает, читать просто надо и warning-и, а если посмотреть C# , то тот уже дает ошибку. Бороться можно кстати и в си с таким, надо просто приучить себя писать так if(5==а) (  if(5=a) - ошибка компилятора) {} :-)


 
Юрий Зотов ©   (2007-06-04 10:26) [154]

> P   (04.06.07 02:58) [147]

> Для написания программ на C/C++ нужны мозги, на Delphi - диплом ПТУ.

Встречаются высказывания, реакция на которые может быть только одна - восторг их оригинальностью. Другой реакции они не заслуживают.

> Defunct ©   (04.06.07 04:05) [149]

Ничто не мешает. Как и ничто не мешает прочитать и понять вообще любую языковую конструкцию, даже самую навороченную.

Но возникает вопрос - а зачем вообще вводить какие-то усложнения, если:
а). спокойно можно обойтись и без них;
б). они не дают ничего реально полезного;
в). они могут затруднить читабельность кода.

Зачем?

Только не надо о краткости записи. Мы уже выясняли - если она хоть чуть-чуть мешает пониманию кода (особенно, чужого), то она более вредна, чем полезна.

Итак - зачем?


 
Юрий Зотов ©   (2007-06-04 10:33) [155]

> Evgeny V ©   (04.06.07 10:09) [153]

> Си позиционировался как язык промежуточный между ассемблером и
> языками высокого уровня.

Я в курсе. Но это нисколько не заставляет вводить в него неестественные конструкции, для понимания которых нужно знать условности языка (коих, кстати, немало).

> прямые ассемблерные аналоги

И даже этим нельзя оправдать те самые неестественные конструкции типа i++. Для повышения эффективности надо не язык корежить, а компилятор нормальный делать. Который и переведет естественную конструкцию в прямой машинный аналог (если таковая имеется).


 
db2admin ©   (2007-06-04 10:43) [156]

холиварчик давно такого не было ))


 
Игорь Шевченко ©   (2007-06-04 10:45) [157]

Юрий Зотов ©   (04.06.07 10:33) [155]

Вот не понимаю, честное слово. Ты на ассемблере программировал, ничего там для себя неестественного не видел ?


 
TUser ©   (2007-06-04 10:46) [158]

> холиварчик давно такого не было ))

Тебе какой символ больше понятен (интуитивно) := или +=.

Кстати, += еще удобен тем, что они на одной кнопке, - набирать быстрее.


 
clickmaker ©   (2007-06-04 10:48) [159]


> И даже этим нельзя оправдать те самые неестественные конструкции
> типа i++.

если б это был единственный вариант написания, то да. А так, почему бы не писать i = i + 1?


 
Плохиш ©   (2007-06-04 10:51) [160]


> TUser ©   (04.06.07 10:46) [158]
> > холиварчик давно такого не было ))
>
> Тебе какой символ больше понятен (интуитивно) := или +=

А мне вот этот "==" непонятен...



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 13 14 15 вся ветка

Форум: "Прочее";
Текущий архив: 2007.08.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.86 MB
Время: 0.138 c
10-1136459207
Gear
2006-01-05 14:06
2007.08.26
OleVariabt и safearray of BSTRs


2-1186211852
Alex7
2007-08-04 11:17
2007.08.26
Сортировка данных в TADODataSet


15-1185891612
WASM
2007-07-31 18:20
2007.08.26
Формат dct


11-1166785407
Fregl
2006-12-22 14:03
2007.08.26
Работа с BDE32


8-1162570365
Кевларвестов Семен
2006-11-03 19:12
2007.08.26
Чем бы выдернуть инфу из видео файла?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский