@reflechant

Тег programming в блоге reflechant

reflechant

Вам не кажется, что огромная популярность таких вещей как Docker, virtualenv, а также поведение по умолчанию/рекомендуемый сценарий использования всех этих npm, cabal, lein (т.е. создавать песочницу с закачкой всего с нуля для самого маленького проекта) показывает, что идея кроссплатформенности с треском провалилась? И проблема не в Windows vs. Linux vs. MacOS, а в версиях языков, сред исполнения и библиотек.
Ни один менеджер пакетов ЯП не понимает разницы между мажорной и минорной версией. Многие разработчики библиотек тоже.
Наверное, ближе всех к решению подошли в http://labix.org/gopkg.in

#ojhgz 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Отвечая на #oowksb:
Go прочно прописался среди моих любимых языков. Я теперь частенько использую его если нужно какую-нибудь консольную хрень написать (в данном случае она часто оказывается ещё и кроссплатформенной). Отход от принципов DRY из-за строгой типизации отсутствия метапрограммирования в любом виде действительно напрягает. Интерфейсы это круто, но иногда весь интерфейс заключается в наличии поля id: int, а писать getter методы для каждого типа по такому поводу попахивает джавой. Притом плохой джавой.
Потихоньку пробую Clojure, Haskell, в планах читать Rustbook. Возможно, со мной не всё в порядке. Но я, кажется, понимаю в чём смысл этого языкового туризма - ты начинаешь думать по-другому, начинаешь лучше писать на основных языках. В общем, "A change in perspective is worth 80 IQ points"

#ojaek 19
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Достала путаница с переводом на русский (а тем более с пониманием смысла) слов statement и expression
Недавно смотрел презентацию Rich Hickey и он предложил замечательную трактовку, которая на мой взгляд, имеет глубокий смысл.
Statement происходит от слова state, т.е. состояние. Значит, statement'ом называется всё, что имеет побочный эффект: объявление переменных, присваивание (даже в такой завуалированной форме как операция инкремента ++).
Expression - это то, что можно вычислить, но то, что всегда будет давать один и тот же результат.
Statement-expression (хрень из стандарта C++), таким образом превращается либо в statement, либо в expression. Если x++;, то это statement, если 42 * 5;, то expression.
Также это значит, что expression может содержать только чистые функции (вывод на экран, например, не подходит)

Теперь к переводу. Expression однозначно переводится как выражение, потому что это слово используется много где, от литературы до математики и всегда с таким переводом. А вот что делать со statement, лично мне пока не совсем ясно. Инструкция? Команда? Высказывание?

В общем, предлагайте ваши варианты.

#ojcwt 18
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

По сравнению с Golang C - статически типизированный анархизм.

#oojbup 3
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Раньше я ругался на Atom, а сейчас с удовольствием им пользуюсь. К нему есть куча прекрасных плагинов. Поставил go-plus и превратил его в IDE для Golang.
Сейчас хочу ещё какой-нибудь плагин для С прикрутить.

#oojxfp 3
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

На хабре в комментариях рассуждают какая мощная машина нужна для разработки, чтобы PyCharm, Eclipse и прочее говно, написанное на джаве не висло.
А потом программист «случайно» не замечает, что его творение не виснет только на Core i7 Extreme.
Я бы вообще запретил вести разработку на чём-либо мощнее самой распространённой конфигурации железа на данный момент минус 5 лет. Потому что продуктивность работы пользователя программы ещё более важна, чем продуктивность программиста.

Возможно, тогда современный веб был бы действительно удобным, а не специальной олимпиадой «кто быстрее сожрёт батарею ноута говённым джаваскриптом с 3 фреймворками и HD видео на фоне»
Возможно, тогда бы С++ неприлично долго компилирующиеся и неадекватно переусложнённые языки начали бы терять свою популярность.
Возможно, тогда мы бы не возвращались стремительно во времена DOS, когда люди работали одновременно только с одной программой (тогда — потому что не было многозадачности, сейчас — потому что тормозит — некоторые программисты же верят в закон Мура и в то, что у пользователей денег куры не клюют на покупку мощного железа)

#oowbjb 36
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Был на Савёловском рынке и увидел в магазине combook.ru книжку Саммерфилда по Go. Не удержался и купил.

#icniv
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Начал учить Rust. Нравится.

#iasce 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Сделал простенький консольный клиент для Яндекс.Словари. Может быть, кому-то пригодится.
Да, ключ для API придётся получить самим.
https://gist.github.com/ref...e7c882c68a9017d2fa17

#iauik
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Если верить ютубу, то для R6: Siege уже читы вышли. Видел рекламное видео самого чита. Да, я стал искать после того, как попал на сверхъестественно хорошую команду. Да, у меня пригорело.

Я вообще не понимаю как можно в наше время посылать по сети клиенту положение других игроков или допускать клиент до расчёта физики или чего-нибудь ещё. ВСЁ ДОЛЖНО БЫТЬ НА СЕРВЕРЕ. Клиенту не должна приходить информация ни об одном пикселе, который он не должен видеть.

Всё общение клиента с сервером должно быть не в формате "сервер, вот моя пуля прошла сквозь 2 стены, потом разбила бутылку и убила Кеннеди", а "сервер, ствол оружия направлен туда-то, двигал я его с такой-то скоростью, потом нажал на курок, скажи куда я попал". И если скорость движения ствола слишком большая - пожизненный бан без разговоров.

Да, для этого игровые сервера должны быть организованы примерно также как суперкомпьютеры.

#iajhv 6
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Попробуем заглянуть поглубже. Зачем вообще нужны HTML+CSS+JS? Чтобы делать сложный динамический дизайн сайтов, уникальный внешний вид и т.д.

А так ли это нужно?

Вот есть Android, есть требования Google по внешнему виду приложений, есть Material Design и в итоге пользователь не пялится в пони, пукающих радугой на клубничном фоне, а работает со знакомым интерфейсом, с классическими структурами данных: список, меню, check button, radio button и т.д.

То же в Linux - есть GTK и у него есть темы оформления. Надоела старая - поменял. На всех приложениях сразу. Большинству приложений не нужно альтернативное оформление или набор GUI-элементов. А ещё я могу использовать Awesome WM, который вообще скрывает заголовок окна (может мне он не нужен) и он скрывается у всех.

Захотел - сделал всё помельче, захотел - покрупнее, поконтрастнее, для дальтоников... как вы добьётесь такой же настраиваемости и удобства_для_конечного_пользователя в случае с самопальными велосипедами на html+css+js?

Т.е. данные и функциональность отдельно, оформление отдельно. Почти клиент-сервер.

Почему бы также не сделать в Сети? Я уже видел эту идею в комментах на Хабре: когда у меня на машине локально стоит клиент, который отображает данные, полученные из Сети, удобным для меня образом. Клиентов может быть несколько, на любой вкус. Аналог приложений для мобильных платформ.

Почему все пользуются именно приложениями на смартфонах? Потому что веб, сука, тормозит. Только 8 ядер вытягивают webkit и все эти ваши дизайнерские свистоперделки. А приложение мало того, что работает быстро, так и прекрасно интегрировано именно в эту платформу. Потому что я купил телефон на Android/iOS/Windows Phone не для того, чтобы любой вася пупкин диктовал какой у меня должен быть User Experience.

#icbko 2
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Не разделять код и данные в 21 веке? Serously? Т.е. если кто-то забыл сделать проверку ввода, я могу запустить свой гаденький <script ...> на компьютерах всех кто хотя бы откроет страничку? Разработчики не должны делать проверку ввода - код и данные должны быть разделены.

Огромный поток кода, который постоянно скачивается из Сети - с порнобаннеров, рекламных площадок и ещё чёрт знает откуда и выполняется на Вашем компьютере - вот что такое JavaScript. И да, никаких цифровых подписей. И кому пришло в голову в такое критичное место всовывать такой язык как JS? Раньше злом считали Java-апплеты, сейчас Flash, но зло в самой идее запускать на моём компьютере произвольный код неизвестно откуда по любому чиху.

JS протолкнули корпорации. Тупо вбухали миллиарды денег и в итоге мы имеем таких монстров как v8. А если бы деньги вбухивали в более качественный язык? Что бы мы могли иметь сейчас?

Про то, во что превратили современные HTML и CSS уже достаточно было написано. Сдаётся мне, что нарисовать все состояния интерфейса png'шками будет зачастую кушать меньше ресурсов и даже занимать меньше места, чем все эти -moz и -webkit-префиксы.

И некоторые предлагают весь этот кошмар перенести на другие платформы (AppJS, Qt QML,...). Вы с ума сошли? Т.е. теперь простенькое приложение, которое тормозит и весит под 200 МБ, это нормально? Браузеры на компьютере среднестатистического пользователя отъедают больше ресурсов, чем некоторые игры!

Да, хочется чтобы красиво, кроссплатформенно, быстро и легко в разработке. Ну так вперёд! Есть множество замечательных языков, скриптовых и компилируемых (Lua, Nim, Go, Python), есть OpenGL, SDL2, есть привязки уже распространённых GUI-библиотек (типа Qt, GTK) к скриптовым языкам и т.д. - для красивого кроссплатформенного декстопа не нужны HTML, CSS и JS ! Надеюсь, в скором времени, и в Сети вернутся к изначальному замыслу HTML, а JS заменят чем-нибудь побыстрее и понадёжнее. И без <script>.

#iciam 21
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Роберту прям как Билл Гейтс в своё время: "64-битного double хватит всем".
Притом последний Lua можно собрать как 64-bit, так и 32-bit и к Lua прикручено уже несколько библиотек длинной арифметики, арифметики произвольной точности и пр.

#ipjfi
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Я читаю Кернигана и Ритчи и обещаю выучить указатели как следует.

#vylke 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Python:

1.2-1.0

0.19999999999999996
Lua:

=1.2-1.0

0.2

#vrczi 175
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Как можно писать C/C++ ? А давайте вот так: Assembler/Python? C и C++ - 2 разных языка.

#vrbsh 4
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Ещё одна вещь, которая мне не нравится в Windows. Не в самой Windows, а скорее в экосистеме Windows.
Там совершенно не развиты все те замечательные средства автоматизции разработки, которые есть в экосистеме *NIX. Например, Configure & make & make install.

Я вот сейчас для себя делаю маленькую библиотеку GUI на базе LuaSDL. В Linux я ставлю пакетом SDL, Lua и LuaSDL и могу работать. А в Windows я даже не знаю толком как это собрать, тем более, что я знаю C/C++ на уровне школьного олимпиадного программирования. Как представлю себе что мне предстоит - настраивать пути, собирать язык Lua и 2 библиотеки, как-то их друг с другом связывать... руки опускаются и хочется просто забить на Windows.

#vnqpk 15
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Фантазирую: вот бы был сделан ЯП с полностью изменяемым синтаксисом. А под капотом было бы что-то типа LLVM.

#vnqdw 9
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

Очень интересные мысли
http://habrahabr.ru/post/260149/

#vhctb 1
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
reflechant

http://habrahabr.ru/company...777/#comment_8452115

Эти плюсовики даже не понимают чего плохого в языке, у которого выходит новый стандарт каждые 5 лет.

#vryht 64
Вы можете выбрать до 10 файлов общим размером не более 10 МБ.

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.