The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Сравнение эффективности разработки интерфейсов с использован..., opennews (??), 20-Мрт-13, (0) [смотреть все] +1

Сообщения [Сортировка по времени | RSS]


10. "Сравнение эффективности разработки интерфейсов с использован..."  +4 +/
Сообщение от Xasd (ok), 20-Мрт-13, 14:25 
> ...си за такое сразу послал бы...

анализатор статической типизпции -- не сделает за программиста его работу.

если ты написал (по ошибке)

memset(my_obj_ptr, 0, sizeof(my_obj_ptr));
вместо
memset(my_obj_ptr, 0, sizeof(*my_obj_ptr));

то компилятор тебя не пошлёт (и темболее "сразу").

иногда у меня вообще такое ощущение что некоторые Си-программисты страдают рассеянным вниманием из-за того что думают будто компилятор находит все их ошибки.

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

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

50. "Сравнение эффективности разработки интерфейсов с использован..."  +/
Сообщение от qux (ok), 20-Мрт-13, 17:18 
> иногда у меня вообще такое ощущение что некоторые Си-программисты страдают рассеянным вниманием из-за того что думают будто компилятор находит все их ошибки.

Некоторые не знаю, а в общем, как и все прочие, страдают забиванием. Сравнить, например, кол-во полезных подсказок, выдаваемых gcc на не-helloworld по дефолту и с -Wall -Wextra (-pedantic --std=c99 -Werror). А потом кол-во проектов, которые ближе ко второму. Особенно коммерческих.

Ответить | Правка | Наверх | Cообщить модератору

61. "Сравнение эффективности разработки интерфейсов с использован..."  –1 +/
Сообщение от Алексей Морозов (ok), 20-Мрт-13, 18:52 
> memset(my_obj_ptr, 0, sizeof(my_obj_ptr));

Ну, вот конкретно такое достаточно хорошо ловится юниттестами, запущенными под валгриндом

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

74. "Сравнение эффективности разработки интерфейсов с использован..."  –1 +/
Сообщение от Vkni (ok), 20-Мрт-13, 22:46 
> анализатор статической типизпции -- не сделает за программиста его работу.

Не сделает ВСЮ работу. Но часть сделает. Поэтому несколько глупо использовать интерпретатор и динамическое типизирование.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

78. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 20-Мрт-13, 22:51 
>> анализатор статической типизпции — не сделает за программиста его работу.
> Не сделает ВСЮ работу. Но часть сделает. Поэтому несколько глупо использовать интерпретатор
> и динамическое типизирование.

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

Ответить | Правка | Наверх | Cообщить модератору

90. "Сравнение эффективности разработки интерфейсов с..."  –1 +/
Сообщение от Vkni (ok), 21-Мрт-13, 00:02 
> не соглашусь. другое дело, что в js нет встроеного механизма указать типы,
> если надо. зато есть идиотия с использованием одного и того же
> оператора для сложения строк и чисел.

Сравни OCaml и JS: в первом система статических типов, вывод типов методом ХМ (т.е. указывать тип можно, но не обязательно - он будет выведен), именованные параметры, значения параметров по-умолчанию. Единственная фигня - операторы для вещественных чисел /., *., +. и -., хотя никто не мешал перегрузить. Это, впрочем, исправлено в F#.

Ответить | Правка | Наверх | Cообщить модератору

92. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 21-Мрт-13, 00:16 
> Сравни OCaml и JS

я окамла не знаю, увы. ну, так — на уровне «о! окамл! я не испуган, но озадачен.»

впрочем, сравнение всё равно некорректно: всё-таки js изначально не планировался как язык для написания чего-то сложнее, чем небольшие скриптики. в actionscript это попытались починить, но зачем-то притащили и симула-подобную (точнее, цпп-подобную) объектную модель.

(да, я знаю, что дефис не нужен; но с ним красивей)

беда js в том, что никто изначально не предполагал масштабов бедствия. а в итоге современные реализации js, например, должны бережно повторять глюки оригинального дизайна. с var, например, у которого scope — вся функция, а не блок. или с тем, что eval (который и так-то не особо нужен, но…), присвоеная переменной — уже не совсем та же самая eval.

Ответить | Правка | Наверх | Cообщить модератору

93. "Сравнение эффективности разработки интерфейсов с..."  +1 +/
Сообщение от Vkni (ok), 21-Мрт-13, 00:32 
> я окамла не знаю, увы. ну, так — на уровне «о! окамл!
> я не испуган, но озадачен.»

Посмотри, не пожалеешь - штука маленькая, быстрая и очень удобная. Учебник по OCaml - http://caml.inria.fr/pub/docs/oreilly-book/ (где-то есть перевод на русский). Сочетает императивщину и функциональщину. И его идеи - более-менее передний край CS, как говорят специалисты, в 90-е научное развитие языковых средств остановилось (а индустрия это постепенно подсасывает).

После этого будет тяжко смотреть на С++ с его шаблонами и смешно на тутошние языковые споры.

> беда js в том, что никто изначально не предполагал масштабов бедствия.

Есть ещё чудесный PHP. :-)

Ответить | Правка | Наверх | Cообщить модератору

94. "Сравнение эффективности разработки интерфейсов с..."  +1 +/
Сообщение от arisu (ok), 21-Мрт-13, 00:49 
>> я окамла не знаю, увы.
> Посмотри, не пожалеешь — штука маленькая, быстрая и очень удобная.

да я знаю это — теоретически. а на практике как-то всё лениво, каждый раз на завтра откладываю.

> где-то есть перевод на русский

это не обязательно. %-)

> После этого будет тяжко смотреть на С++ с его шаблонами

да мне давно смешно.

> и смешно на тутошние языковые споры.

и так… собственно, после Scheme, где спокойно сочетается императивщина, функциональщина, разные объектные модели и pattern matching… разве только системы типов нет, хотя type inference поверх компилятора повесить несложно, code as data же.

>> беда js в том, что никто изначально не предполагал масштабов бедствия.
> Есть ещё чудесный PHP. :-)

нененене. на js всё-таки можно писать, хоть и с трудом. но есть замыкания, лямбды и прочие приятные вещи. а у php одни костыли из каждой дырки и 100500 функций в global namespace. %-)

Ответить | Правка | Наверх | Cообщить модератору

95. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от Crazy Alex (ok), 21-Мрт-13, 01:11 
В экшнскрипт не плюсовую, а жабью модель притищали, причем почти один к одному.
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

96. "Сравнение эффективности разработки интерфейсов с..."  +2 +/
Сообщение от arisu (ok), 21-Мрт-13, 01:14 
> В экшнскрипт не плюсовую, а жабью модель притищали, причем почти один к
> одному.

да у них у всех ноги из одного места растут.

Ответить | Правка | Наверх | Cообщить модератору

77. "Сравнение эффективности разработки интерфейсов с использован..."  –1 +/
Сообщение от Аноним (-), 20-Мрт-13, 22:50 
> если ты написал (по ошибке)
> memset(my_obj_ptr, 0, sizeof(my_obj_ptr));
> вместо
> memset(my_obj_ptr, 0, sizeof(*my_obj_ptr));

Во-первых, где здесь статическая типизация? Перепутана константа. Во-вторых, некоторые компиляторы выдают warning при компиляции такого (в gcc, вроде, было).

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

91. "Сравнение эффективности разработки интерфейсов с использован..."  –1 +/
Сообщение от Vkni (ok), 21-Мрт-13, 00:05 
> иногда у меня вообще такое ощущение что некоторые Си-программисты страдают рассеянным вниманием
> из-за того что думают будто компилятор находит все их ошибки.

С момента изобретения С прошло уже 40 лет, пора бы и на другие языки посмотреть. В частности, на ML/Haskell и подобные - там значительно более серьёзная система типов, нежели в С. И результаты работы анализатора типов, разумеется, тоже более серьёзные.

Он тоже не найдёт все ошибки, но результат явно будет лучше, чем в С, где можно поменять в memset 2 последних параметра местами и это пройдёт.

Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору

97. "Сравнение эффективности разработки интерфейсов с использован..."  +/
Сообщение от Crazy Alex (ok), 21-Мрт-13, 01:18 
Ну тогда уже D порекламирую, благо он нынче вполне приятен. И вывод типов есть, и если надо в кишки залесть - пишешь unsafe и понеслось. А уж ranges - совершенно чудесная штука, которую никто, кажется, больше не сделал. И не заставляет ломать мозг функицональщиной вида "ехал лямбда через рекурсию монадой погоняя". При этом при надобности есть и иммутабельность, и алгебраические типы, и pure-функции, и карринг, и много других страшных слов :-)
Ответить | Правка | Наверх | Cообщить модератору

99. "Сравнение эффективности разработки интерфейсов с..."  +1 +/
Сообщение от arisu (ok), 21-Мрт-13, 01:35 
не хватает только стандарта и нескольких компиляторов. кагбэ D1 уже нет, а D2 ещё толком нет. и нераспространено. но в остальном — надеюсь, что он в конце концов вытолкает цпп на обочину истории и легаси-кода.
Ответить | Правка | Наверх | Cообщить модератору

131. "Сравнение эффективности разработки интерфейсов с..."  –1 +/
Сообщение от TbIK (ok), 21-Мрт-13, 19:03 
> не хватает только ....

Немного не так: кто ХОЧЕТ писать - тому всего хватает. Кто не хочет - тому ВЕЧНО чего-то нехватает, "мешается в танце" и т.п.

> D2 ещё толком нет.

Есть. Работающий компилятор, бери, да пользуйся!

> и нераспространено.

Как и любой язык без тонны говномаркетинга и бабла. Но при наличии разумных прогеров, легко вольётся в ряды. Вы же про него уже знаете! Я несколько перделок написал. Другие тоже не останутся в стороне, сравнив его с сипипями и цэшарпами.

Ответить | Правка | Наверх | Cообщить модератору

132. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 21-Мрт-13, 19:25 
>> не хватает только ….
> Немного не так: кто ХОЧЕТ писать — тому всего хватает. Кто не
> хочет — тому ВЕЧНО чего-то нехватает, «мешается в танце» и т.п.

если ты пишешь себе приветмиры — то не вопрос, хоть для кнутовой шестибитовой машины пиши.

>> D2 ещё толком нет.
> Есть. Работающий компилятор, бери, да пользуйся!

«есть» — это когда есть хотя бы две равноценные реализации и документ, на котором они базируются.

>> и нераспространено.
> Как и любой язык без тонны говномаркетинга и бабла.

в си очень много вливали, да. и рекламировали на каждом углу.

> Но при наличии разумных прогеров, легко вольётся в ряды.

в качестве тестера — натурально. ничего плохого в этом нет, но мне неинтересно.

> Вы же про него уже знаете!

я про него знаю ещё с тех пор, как Уолтер его только сочинял.

> Я несколько перделок написал. Другие тоже не останутся в стороне,
> сравнив его с сипипями и цэшарпами.

вот когда «не останутся» — тогда и стоит рассматривать в качестве языка для будущего проекта. а пока что вероятность подключения энтузиастов к проекту на c/c++ намного больше, чем та же вероятность для проекта на D. как минимум в силу того, что последних сильно меньше.

Ответить | Правка | Наверх | Cообщить модератору

133. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 21-Мрт-13, 19:27 
p.s. вообще, *лично для меня* язык подобного плана стоит более-менее серьёзно рассматривать тогда, когда в стандартном наборе gcc появится компилятор для этого языка.
Ответить | Правка | К родителю #131 | Наверх | Cообщить модератору

105. "Сравнение эффективности разработки интерфейсов с использован..."  +/
Сообщение от Led (ok), 21-Мрт-13, 03:10 
>> иногда у меня вообще такое ощущение что некоторые Си-программисты страдают рассеянным вниманием
>> из-за того что думают будто компилятор находит все их ошибки.
> С момента изобретения С прошло уже 40 лет, пора бы и на
> другие языки посмотреть. В частности, на ML/Haskell и подобные - там
> значительно более серьёзная система типов, нежели в С.

А разве в C есть что-то кроме char, int и float? Других типов нет - только "модификаторы" для указанных. Назвать это "системой типов"... мягко говоря, смешно.

Ответить | Правка | К родителю #91 | Наверх | Cообщить модератору

106. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 21-Мрт-13, 03:13 
> А разве в C есть что-то кроме char, int и float?

да. man typedef. структуры тоже отдельные типы. ranged-типов нет, правда. так что не надо уж совсем старичка унижать, он местами ещё вполне ничего.

Ответить | Правка | Наверх | Cообщить модератору

107. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от Led (ok), 21-Мрт-13, 03:21 
>> А разве в C есть что-то кроме char, int и float?
> да. man typedef. структуры тоже отдельные типы. ranged-типов нет, правда. так что
> не надо уж совсем старичка унижать, он местами ещё вполне ничего.

Никто его и не унижает. Но и превозносить его как божественное откровение и идеал - не стОит.

Ответить | Правка | Наверх | Cообщить модератору

108. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от arisu (ok), 21-Мрт-13, 03:31 
> Никто его и не унижает. Но и превозносить его как божественное откровение
> и идеал — не стОит.

но в нише «переносимый макроассемблер» у него таки конкурентов нет.

Ответить | Правка | Наверх | Cообщить модератору

109. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от Vkni (ok), 21-Мрт-13, 04:45 
> но в нише «переносимый макроассемблер» у него таки конкурентов нет.

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

Ответить | Правка | Наверх | Cообщить модератору

110. "Сравнение эффективности разработки интерфейсов с..."  –1 +/
Сообщение от arisu (ok), 21-Мрт-13, 06:05 
нененене, не надо. а то мне будет скучно на нём писать. ;-)
Ответить | Правка | Наверх | Cообщить модератору

111. "Сравнение эффективности разработки интерфейсов с..."  +/
Сообщение от Led (ok), 21-Мрт-13, 06:58 
>> Никто его и не унижает. Но и превозносить его как божественное откровение
>> и идеал — не стОит.
> но в нише «переносимый макроассемблер» у него таки конкурентов нет.

Нет. К сожалению.

Ответить | Правка | К родителю #108 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру