Привет. От меня уже долгое время нет никаких новостей. И, скорее всего, ещё долгое время не будет, поскольку по приоритетам на сайт остаётся очень мало времени, ни по какой конкретной теме не набирается достаточно материала для публикации. Расскажу немного о том, что происходит и что набралось за всё это время.
Я довольно часто занимаюсь т. н. “менторством”. Просто так, мне весело. Но довольно часто начинаю замечать, что часть моих ответы на вопросы подчиняются определённому алгоритму. После некоторого анализа я выяснил вот что.
Я успел поработать со многими языками. Как-то в компании один из друзей задал мне вопрос “ты сколько языков программирования знаешь?”, на что другой (пока ощупавший всего пару языков) заметил, что стоит изучить всего несколько, и они все начинают казаться одинаковыми. Он почти прав. Под всеми языками лежит сколько-то общих концепций. После изучения нескольких (желательно, максимально непохожих) языков постижение какого-то нового уже не кажется таким тяжёлым.
Я хочу поговорить о нескольких больных темах. Во-первых, о Clojure, в котором я так толком и не продвинулся, но которым я по-прежнему восхищён, даже несмотря на полное отсутствие вакансий на него. Во-вторых, о редакторах и IDE, потому что существенной разницы между ними так и не появилось, а самое важное остаётся уделом хипстеров из мира программирования. В-третьих, я затрону такие вещи, как GameMaker и Scratch, идеи которых по сей день презираются, развиваются мелкими шажками и с большой осторожностью.
Я уже неоднократно упоминал Clojure. Но всё никак не расскажу, почему. Среднему программисту (пусть средний уровень и упал в последнее время довольно сильно) этот язык покажется очень странным и с точки зрения синтаксиса, и с точки зрения способа работы. Вот, собственно, и всё. Это очень странный язык. Поэтому я раз за разом к нему возвращаюсь. Да, потому что он такой странный. Странности будут подкреплены примерами.
Есть ряд проблем с поиском информации. Доступной информации в наше время слишком много, но доступной она была не всегда – и существовала проблема поиска связанной информации. Сначала появились сноски и цитаты. Чтобы найти связанную информацию при виде сноски, приходилось опускать глаза в самый низ страницы, после чего искать указанный там источник, для чего в лучшем случае пришлось бы пошариться по собственной книжной полке, в неплохом – сходить в библиотеку или спросить у друга, в худшем – остаться с носом. В любом случае, это долгий процесс (вплоть до \(+\infty\) затрат по времени). Во многих случаях настолько долгий, что его просто забрасывают.
Когда-то давно я уже писал про системы контроля версий. С тех пор я успел довольно интенсивно попользоваться Git на работе, и даже написать небольшую инструкцию для коллег. По-моему, её никто не читает :)
Поэтому часть этой инструкции я хочу изложить вам, для применения в собственных проектах.
Продолжаю рассказ о среде разработки. С тех пор прошло, казалось бы, совсем немного времени, но изменилось очень многое. У Sublime Text появился серьёзный соперник. Появился, причём, весьма неожиданно, поскольку не все легкоузнаваемые детали делали его таким серьёзным. Теперь, когда редактор начал стабилизироваться, можно о нём и поговорить. Идейно это последователь Sublime Text, разработан он при существенном участии GitHub на довольно причудливых технологиях. Изначально, когда шло закрытое бета-тестирование редактора, а распространялись только сборки для OS X, сайт редактора честно гласил, что после закрытой беты редактор, скорее всего, станет коммерческим. Но не только не стал, но ещё и в мае 2014 его код был открыт по весьма мягкой лицензии, а сам редактор объявлен бесплатным. Насовсем.
А пост будет вовсе не о том, о чём гласит заголовок. Странно как-то, но лучшего названия для этого поста я не придумал. Речь не о том, какой смысл в заголовке, а о том, какой эффект он даёт. Так вот, речь пойдёт в основном даже не обо мне. А о многих виденных мной ранее мечтателях, увидевших необъятный мир игростроя и захотевших стать его частью. И поймите меня правильно, я сам когда-то был таким. Поэтому я не собираюсь осуждать кого-либо и говорить, кто идиот, а как делать правильно.
Помните, я рассказывал про сравнение текстовых редакторов со средами разработки? Закончил я на той ноте, что это примерно одно и то же, отличия только в стартовой комплектации. Наверное, это всё выглядит несколько голословно, поэтому я здесь приведу кое-какие фрагменты того, из чего у меня состоит среда разработки. Только начну я издалека – аж с железа и установленных ОС. Некоторые изъявляли интерес, надеюсь на будущее отсечь такие вопросы, написав об этом здесь, подробно. Я постараюсь называть конкретных моделей и цен поменьше, потому что на момент прочтения часть уже может отсутствовать в продаже, а цены могут быть неактуальны (особенно сейчас, с рванувшим вверх курсом \(доллар/рубль\)).
Железо всё ширится, растёт и крепнет. Диапазон доступного на рынке железа нынче широк настолько, что стало возможно на одном компьютере запускать сразу несколько систем. На первый взгляд, это форменное безумие, но напрягшись, можно придумать несколько интересных способов использовать это. Скажем, вы можете разрабатывать что-то для сетей, и собрать маленькую сеть на одном своём компьютере, “для опытов”. И я сейчас говорю не о поднятии клиентов и серверов на разных портах, нет, это скучно… мы поговорим о виртуальных машинах. И не только.
Видимо, мне всё же придётся об этом написать. Хотя бы с той целью, чтобы об этом знало немножко больше людей, занятых программированием. Друзья, облегчите себе и коллегам жизнь! Возьмите себе за правило форматировать код, чтобы его было легко читать. Это не так сложно, как кажется! …и вызывает привыкание! Блин, как будто уговариваю начать курить. Самое смешное, что я сам при этом не курю. Код форматирую, это да…