Как стать автором
Обновить

Комментарии 42

Не нужно знать принципы работы двигателя внутреннего сгорания, чтобы хорошо управлять автомобилем и получать наслаждение от жизни! Не нужно знать тонкости работы виртуальных деструкторов, чтобы эффективно использовать СУБД с HTML-мордой и быстро решать бизнес-задачи с коротким time2market.

Так вот он главный принцип разработчиков системы 1С-Битрикс. /оффтоп
Чтобы управлять автомобилем как профессиональный пилот — надо знать принципы работы двигателя внутреннего сгорания )
Зачем? :-) Жми на газ и вперед.
Если это спринт по прямой то и так сойдет
Вы видели соревнования по Драгу? О чем спор ) Взорвете двигатель )
Это если обороты не держать в пределе, тогда да.
Да я изучил ДВС вдоль и поперек, а на практике беру либо и использую в 99.9% случаев. И нахрена я несколько лет копал Somputer Science с пристрастием? :-)
Но больше принцип работы трансмиссии, подвески и тормозов. У мотора задача тупая и понятная по сравнению с перечисленными системами)

Вы, видимо, профессиональный пилот? Тогда почему в профессиональных гоночных командах куча профессиональных техников, помощников и пилоту остается задача только "рулить". Не такая уж и простая задача. Но пилоту важно знать какие обороты, какой крутящий момент у него, пик, минимум. Ему нужно знать развесовку и чувствовать ее. Но информация о принципе работы двигателе ему особо то и не нужна. Или, вы думаете, если профессиональный гонщик сядет за машину с роторным двигателем или с электродвигателем: он сразу будет хуже ехать без детального знания принципа работы привода? Ему достаточно знать как этот двигатель тянет, как едет. Т. е. внешние проявления, но не внутрянка.

Чувствуете разницу между принципами и детальными знаниями?

И как в гонке поможет знание общих принципов?

НЛО прилетело и опубликовало эту надпись здесь
низкоуровневые языки типа java и C# (и, упаси Бог, в С/C++)


Ктулху забери автора к себе. / оффтоп
я и так в аду :-)
нет серьезно, когда они стали низкоуровневыми?
Ну сравни python с java, разница то огромная пипец. Понятно, что C у нас низкоуровневый, а все остальное высокоуровневое — но как ты поставишь вместе PHP и C++?
Ну уровень у них одинаковый, место применения разное, собственно php и появился как развитие под специфические задачи

В 1994 году датский программист Расмус Лердорф создал набор скриптов на Perl/CGI для вывода и учёта посетителей его онлайн-резюме, обрабатывающий шаблоны HTML-документов. Лердорф назвал набор Personal Home Page (Личная Домашняя Страница). Вскоре функциональности и быстроты Perl — интерпретатора скриптов — перестало хватать, и Лердорф разработал с использованием языка C новый интерпретатор шаблонов PHP/FI (англ. Personal Home Page / Forms Interpreter — «персональная домашняя страница / интерпретатор форм»)
Сборщик мусора у них, в отличие от C++, встроенный. Но java работает в разы быстрее из-за строгой типизации и ООП головного мозга. Зато у php динамическая типизация, удобная часто при разработке и встроенные коллекции. Они очень разные. Тут грань что считать высокоуровневым, а что низкоуровневым — размытая.
Тут грань что считать высокоуровневым, а что низкоуровневым — размытая.

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


И вот —
Низкоуровневый язык программирования (язык программирования низкого уровня) — язык программирования, близкий к программированию непосредственно в машинных кодах


Критерии очень даже понятные
Cи на каком уровне, по твоему?

Коллега, а вы пробовали ассемблер? Попробуйте, и тогда вопрос с С у вас отпадет, а разница между python и Java перестанет быть "пипец огромной"

Это понятно. Но кто-нибудь сейчас будет писать сайт на ассемблере? Его даже на СИ писать не будут. Даже такие высоконагруженные сервисы, как ВК, работают на PHP, почему-то их не пишут на СИ и тем более на ассемблере.

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

Так то попытка смешать мух и котлеты не очень удачная.

Или по Вашему все что не используется в вебе сразу низкоуровневое? ИМХО, но так то есть совсем специфичные высокоуровневые языке вообще не используемые в вебе никоим образом, но хотя возможно и могли бы там использоваться, и что они тоже становятся высокоуровневыми?

Вопрос изначально стоит не в том, на чем лучше писать сайты, а о том что деление некорректное на высоко- и низко- уровневые языки. Веб это не апогей разработки. тем более если разговаривать о нем в контексте кампании 1С-Битрикс.

Деление на самом деле условное. Когда был ассемблер и си (условно), то все было понятно, какой низкоуровневый, какой высокий. Сейчас же границы очень сильно размыты. А так как статья о веб-разработке, то не веб языки можно считать условно низкоуровневыми (но опять же, это не точная, "научная" формулировка). Понятно, что это не соответствует классическим представлениям.
А написать сайт на си не представляет большой проблемы. И пишут какие-то специфичные вещи, с которыми не может справиться PHP.

Статья как раз для вас! Избегайте излишней формализации и цепляния к формулировкам, которые поросли паутиной еще 30 лет назад. Эти все вещи мне и не только мне давно известны, но мир меняется. Лучше размышлять уровнем абстракции/алгебры языков и тогда вы поймете, что Haskel с Erlang, частично, Scala, с, думаю Akka, вообще пипец на каком высоком уровне находятся. Раскрепостите сознание, не зацикливайтесь, прошу :-)
И, продолжая тему, выбирая правильный язык = алгебру = уровень абстракции и выразительности — вы меняете на порядок вероятность успешности проекта.

А веб, уверен, это вершина сейчас в мире разработки. Почти все делается для него и он направляет индустрию, как бы нам не хотелось не признавать это и углубиться в совершенствование компилятора какого нить
Сборщик мусора у них, в отличие от C++, встроенный.

Вот не помню когда последний раз писал new/delete в C++ ))
Макс, ну потому что ты реально очень крут и делаешь сразу правильно. А я дальше учебников и Страуструпа C++ не видел и вот это выделение памяти и ошибки возможные — очень волнуют :-)
наверно самое большое отличие у них в типизации. Если в php одна динамическая и нестрогая и интерпретатор, то в java — статическая и строгая и все сначала компилируется. Хотя потом да, выполняется и там и там в виртуальной машине.

Про тесты ты по-прежнему не прав :) Тесты пишут не для того, чтобы проверить, хорошо ли работает код. Тесты пишут для того, чтобы если через два года десятый по счету менеджер и пятнадцатый программист сломают какую-то фундаментальную штуку в бизнес-логике — это было бы видно СРАЗУ.

В дополнение скажу если еще писать нормальные комментарии, то и сам вернувшись через год-другой проекту есть шанс вспомнить что к чему.
согласен, комментарии и ясные идеи в коде очень важны
и ты продолжаешь верить, что тесты выявят СРАЗУ любую ошибку через 5 лет и для этого стоит их поддерживать все это время? :-)
НЛО прилетело и опубликовало эту надпись здесь
А я еще тесты пишу, потому что лень прокликивать странички вручную.
А потом еще и тест остается на случай регрессии. Двойная выгода…

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

Учите jQuery, а не javascript.


Но все же, кажется, это все добрая шутка, т.к. про тесты как-то толсто вышло.

ну разумеется, это стебная статья посмеяться и подумать :-)
Сначала отнёсся скептически, а потом узрел здоровый скепсис и легкое накидывание на вентилятор.

В принципе, можно сказать, что для веба сейчас важнее не выбор языка программирования, а умение правильно писать. Или, возможно, правильно заниматься раскруткой/поддержкой.
НЛО прилетело и опубликовало эту надпись здесь
Я не знаю алгоритмы, хотя несколько раз предпринимал попытки их изучить и вообще не пишу тестов. Паттерны проектирования в лучшем случае могу объяснить на словах, и то с предварительной подготовкой.

Но это не мешает мне зарабатывать на жизнь исключительно веб-разработкой. При всей косячности Битрикса, в статье прозвучали здравые мысли. В первую очередь я стремлюсь писать простой и поддерживаемый код — KISS, DRY, YAGNI для меня знакомые аббревиатуры. Также для меня важно подробно изучить инструменты и технологии, с которыми приходится работать, возможности стандартных библиотек.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий