Разочарование

Sep 05, 2012 12:38

Два дня писал головоломный кусок кода, дописал, запустил... А он просто взял и заработал. У меня прям руки опустились. Чувство, как будто ко мне направлялся гопник, я уже прицелился дать ему в глаз, а он спросил, как пройти в библиотеку. Нельзя же так, в самом деле.

Пойду сломаю что-нибудь, а потом починю.

рефлексия, работа, java, сюрпризы

Leave a comment

blackyblack September 5 2012, 09:42:53 UTC
Если это ява, значит Вы просто чего-то не заметили.

Reply

polycode September 5 2012, 09:54:24 UTC
А что не так с явой? Я на ней недавно пишу, мож чего не знаю...

Reply

blackyblack September 5 2012, 10:00:22 UTC
Тот же с++, но со сборщиком мусора. Мало-мальски сложный проект на яве просто обязан содержать ошибки.

Reply

polycode September 5 2012, 10:23:49 UTC
Так это и не весь проект - так, с десяток классов. Весь проект, конечно, будет содержать ошибки. И что-то мне подсказывает, что дело тут не в языке.

Reply

blackyblack September 5 2012, 10:45:22 UTC
На хаскеле если уж удаётся скомпилировать, то скорее всего будет сразу работать. Язык - это вещь определяющая. В правильно подобранном языке весь проект будет состоять из одной строчки. :)

Reply

polycode September 5 2012, 11:16:49 UTC
Мне кажется, магические свойства хаскеля по предотвращению ошибок преувеличены. Не припомню из своей недавней практики ошибок, которых мне помогла бы избежать строгая типизация.

Reply

sorhed September 5 2012, 11:55:42 UTC
Нет, не преувеличены.

В C++ нет строгой типизации, это так, жалкая подделка. :)

Хотя, конечно, можно и на хаскеле делать типы как на C++, тогда всё будет плохо.

Reply

polycode September 5 2012, 12:15:08 UTC
Возможно, я плохо знаю хаскель, но попытки его использовать в курсах Coursera показали, что от логических ошибок он не спасает.

Reply

sorhed September 5 2012, 16:44:44 UTC
От логических в смысле «неправильно вообще понял ситуацию» не спасает, но в смысле «по невнимательности забыл что-то сделать или сделал не так» часто спасает, потому что при правильном подходе сверху-вниз все нужные шаги вскрываются в хаскеле постепенно, и многие ошибки видны ещё на этапе выписывания сигнатур.

За это он мне нравится. В скале, которая сейчас основной мой рабочий язык, часто наблюдается тот же эффект.

Reply

polycode September 5 2012, 20:32:05 UTC
Все-таки, я, наверное, еще не достиг просветления. Для меня все выглядит так: хаскель бьет по рукам за использование чего-то там, где это использование не предполагается, а особенности языка упрощают это. Но Java тоже какую-никакую типизацию имеет, и тоже не дает мешать бобров с ослами. Ну да, в хаскеле иммутабельность и чистота. Но и в джаве я тоже могу делать иммутабельные объекты и чистые методы.

В общем, не проникся пока.

Reply

vinslivins September 5 2012, 18:09:53 UTC
например если сделать координаты по оси икс и по оси игрек одного типа - их вполне можно перепутать

Reply

blackyblack September 5 2012, 18:52:02 UTC
Мысль интересная. Но тогда сломаются формулы для вычисления площади например.

Reply

archaicos September 5 2012, 10:25:36 UTC
Мне кажется, если проект сложный, ошибки будут с любым языком.

Reply

blackyblack September 5 2012, 10:43:29 UTC
Ну я говорил не о сложном, а мало-мальски сложном. Если есть иммутабельные структуры, чистые функции, хорошие структуры данных, то количество ошибок будет сильно ниже.

Reply

archaicos September 5 2012, 11:00:26 UTC
Есть ещё логические/алгоритмические ошибки (в т.ч. элементарные опечатки, ошибки на +/-1), ошибки с т.з. performance, ошибки usability, securty та же... При желании можно всегда найти что-то.

Reply

vinslivins September 5 2012, 18:10:29 UTC
если нет циклов for - то нету ошибок на +/-1

Reply


Leave a comment

Up