HPUNIX Сайт о ОС и не только!

О юниксах, программировании и принятии решений

26 июля 2011 - unix
О юниксах, программировании и принятии решений

До недавнешнего времени я очень заморачивался на темы вроде «кто платит каждый месяц за ссылки в SAPE, когда можно приобрести нескончаемые в GoGetLinks» либо «я не могу поставить эту программку, ведь она употребляет QT, а у меня весь установленный софт – на GTK». Было еще что-то про «GUI против CLI», но на данный момент я даже не могу сконструировать эту делему.

Главный момент в вышесказанном — «до недавнешнего времени». Интуиция (и годы, проведенные в сети) дают подсказку мне, что многим хотелось бы выяснить, как можно решить такие холиварные «философские» вопросы, как Linux против FreeBSD, fork() против потоков и тд.

Начну мало издалека. Вы никогда не думали, для чего кому-то пригодилось выдумывать столько скриптовых языков (PHP, Python, Ruby, …), невзирая на то, что Perl существовал за длительное время до их возникновения и отлично работал?

Для справки — Perl появился в 1987, Python — в 90-м, PHP — в 94-м, Ruby — в 95-м. Причина простая — кому-то просто кое-чем не приглянулись имеющиеся языки и он решил придумать новый.

К примеру, PHP создавался, как средство, заточенное для сотворения динамических веб-сайтов. Дальнозоркая затея для 94-го года, правда? Язык был очень упрощен и оптимизирован для одной определенной задачки. И что вышло в конечном итоге?

Фактически все веб-сайты сейчас работают на PHP! Хотя ничто не мешало и не мешает до сего времени писать их на Perl, Python либо даже на C++ (1983-й год). Просто PHP оказался удобнее для веб-разработчиков.

Какое это имеет отношение к данной заметке? А такое, что, оказывается, люди вообщем склонны создавать что-то, пусть не совершенно новое, но заточенное специально под себя. Поглядите, хотя бы, сколько на данный момент существует дистрибутивов Linux!

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

Этакого универсального средства от всякой дьявольщины, серебряной пули. Но ее, как понятно, не существует!

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

Нравится Ubuntu? Используйте Ubuntu. Полностью устраивает Windows? Используйте его.

В этой ситуации лучше использовать Java, а не C++? Отлично, используем Java! Правда, может появиться другая неувязка.

Как найти, что лучше в этом случае?

Для наглядности разглядим пример. Васе кое-чем не нравится Windows (достали вирусы), и он подумывает испытать Linux (так как слышал, что вирусов под Linux не бывает).

Но, во-1-х, чтоб испытать Linux, необходимо или сносить Винду, или ставить виртуальную машину, или выискать излишний компьютер. Эти трудности идут в минус Линуксу. Во-2-х, Линуксов, оказывается, много. Какой избрать? Что, если Вася изберет не тот Линукс?

Снова придется переустанавливать ОС? Это — очередной минус. Выходит, что у Винды свои минусы, а у Линукса — свои.

Стоит перебегать?

О юниксах, программировании и принятии решений

Очередной пример. Начинающий программер Петя решил выучить скриптовый язык. Какой избрать — Perl либо Python? Вроде в Python есть много ООП, а на всех форумах пишут, что это отлично.

С другой стороны, имея опыт программирования на PHP, Петя привык к фигурным скобочкам и не желает иметь дело с непривычными табами. К тому же, его друг Вася рекомендовал учить Perl и даже обещал подогнать неплохую книгу. А Вася — юноша умный, желает даже Линукс поставить…

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

О юниксах, программировании и принятии решений

Если не вдаваться в детали, довольно посчитать все «за» для каждого из вариантов и глупо избрать тот, у которого «за» оказалось больше. Это можно сделать на полуинтуитивном уровне за считанные секунды.

Если для нескольких вариантов «за» оказалось поровну, необходимо или натужить мозги и придумать еще пару критериев выбора, или ввести веса. Другими словами давать за особо принципиальные аспекты два «за» заместо 1-го.

Просто, стремительно и, что самое главное, не оставляет никаких колебаний в корректности выбора! Больше никаких заморочек на тему «какая же операционка самая лучшая». Для Васи после подсчетов всех «за» хорошим вариантом оказался Linux, а Петя хорошо ощущает себя и под Windows.

Неувязка решена!

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

Тогда откуда, спрашивается, берутся все эти холивары (см комменты) о Самой Наилучшей На Свете ОС? Неуж-то мы все еще не научились игнорировать троллей? Либо мы просто не вдумываемся в смысл того, о чем пишут в книжках и блогах?

А сейчас — увлекательное следствие из всего вышесказанного. Как понятно, опытнейшему программеру безразличен синтаксис языка. Пишем мы на Pascal либо C, мысль всюду одна и та же — переменные, циклы, условные операторы.

Итак вот, оказывается, существует еще больше высочайший уровень. Когда вообщем все равно на каком языке, для какой операционки и в стенках какой компании писать. Пишете вы на Python в стенках Гугл либо на C# в стенках Microsoft — не принципиально.

Если для вас готовы платить за это средства, означает система работает.

Я говорю не о некий компьютерной системе, а о системе «пользователь — коробка с Windows — прибыль Microsoft — заработная плата программистам». Аналогично, если кто-то покупает телефоны с Симбиан, а кто-то — телефоны c Android, означает право на жизнь имеют и те и другие. Сколько бы нас не пробовали уверить в оборотном юзеры ЖЖ, Хабра и Твитера.

Что все-таки касается GTK и QT, упомянутых сначала поста… у меня довольно места на диске, чтоб держать обе библиотеки. И мне все равно, что одним программерам больше нравится 1-ая библиотека, а другим — 2-ая.

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

О юниксах, программировании и принятии решений

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

Вобщем, если программер временами пробует новые инструменты, вероятнее всего, это никому не повредит.

Дополнение: Пост в продолжение темы — Свободное ПО и открытые протоколы – это отлично?

Похожие статьи

  • Чем неплох и чем плох Linux (либо хоть какой другой nix)

    Друзья нередко задают мне вопросы в стиле «а чем так хороша эта ваша Ubuntu?», «а не перейти ли мне на Linux?», «а какой линукс мне избрать?» и тп. Эта статья поможет новеньким в мире открытых ОС най...

  • Установка и обновление софта во FreeBSD

    В сети есть много инфы про внедрение портов и пакеджей FreeBSD. К огорчению, нередко эта информация оказывается устаревшей. Время от времени бывает, что одна статья противоречит другой.

    Что касается...

  • Практически беспристрастно на тему чем FreeBSD лучше Linux

    Если в вопросе Linux против Windows все достоинства и недочеты сравниваемых ОС более-менее ясны, то в вопросе «FreeBSD против Linux» все не так просто, как многим хотелось бы. Вот почему гайды...

  • Мысли вслух о развитии языков программирования

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

  • Как обновить ядро Linux без перезагрузки системы

    Ksplice представляет собой расширение Linux, позволяющее создавать «горячее» обновление ядра, другими словами, без перезагрузки системы. Под катом представлена маленькая памятка по использованию Ksplice...

Рейтинг: 0 Голосов: 109 1383 просмотра
Комментарии (0)

Нет комментариев. Ваш будет первым!

Найти на сайте: параметры поиска

Windows 7

Среда Windows 7 на первых порах кажется весьма непривычной для многих.

Windows 8

Если резюмировать все выступления Microsoft на конференции Build 2013.

Windows XP

Если Windows не может корректно завершить работу, в большинстве случаев это

Windows Vista

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