Получи случайную криптовалюту за регистрацию!

Gena ANTG

Логотип телеграм канала @antg_official — Gena ANTG G
Логотип телеграм канала @antg_official — Gena ANTG
Адрес канала: @antg_official
Категории: Технологии
Язык: Русский
Количество подписчиков: 257
Описание канала:

Официальный канал.

Рейтинги и Отзывы

5.00

3 отзыва

Оценить канал antg_official и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

3

4 звезд

0

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения

2021-11-14 20:27:44 Перечитал свои же статьи, интересно написал. Будет продолжение.
300 views17:27
Открыть/Комментировать
2020-11-26 07:41:36 [4. Почему "старые" языки программирования до сих пор живы?]
Как не трудно догадаться из предыдущего ответа, языки "старой школы" существуют по причине поддержки давно написанного софта. Основная мысль заключается в том, что поддерживать существующую кодовую базу намного проще, чем начать писать продукт "с нуля", особенно, если это сложный многолетний проект. Например, разработка операционных систем (ОС) и систем управления базами данных (СУБД) требует наличия специалистов со знанием таких языков как C (Си) и Assembler (Assembly, Ассемблер). Почему? Все дело в оптимизации и скорости выполнения программ, а именно: "низкоуровневые" возможности, отсутствие overhead'a и огромный потенциал компилятора для оптимизации вашего кода.

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

Интересный факт: Компилятор C (GCC) способен оптимизировать вашу программу так, что она будет работать быстрее, чем программа написанная на Assembler! И это при том, что программа на языке Assembler непереносима: заточена под конкретную архитектуру процессора, использует системные вызовы host-системы (в другой ОС они просто не будут работать)! Именно по этим причинам (и не только) эксперты Assembler советуют использовать язык C в своих проектах.
1.9K viewsedited  04:41
Открыть/Комментировать
2020-11-19 20:55:06 [3. Зачем учить "старые" языки программирования?]
Для того, чтобы дать ответ на этот вопрос, мы должны понять, где проходит граница между "старыми" и "новыми" языками программирования. Разумеется, четкого раздела здесь нет и эти два термина условны. Как мы узнали выше, никто не создает языки с учетом "новизны". Процитирую еще раз основную мысль из предыдущего ответа: "Со временем разработчики понимают сильные и слабые стороны используемых языков, пытаются их улучшить, либо создать новые, которые больше соответствуют их требованиям и лучше подходят для решения поставленных задач". Думаю, с этим мы разобрались.

Условным водоразделом для "старых" и "новых" языков можем считать район 2000-х годов. При создании таких языков как Java (1995) и C# (2000) учитывали слабые и сильные стороны языков-предшественников (о слабых и сильных сторонах мы еще поговорим). Тот же подход, только в разных вариациях, применялся при разработке языков следующего поколения. Появление языков "новой школы" (Java, C#) и бум объектно-ориентированного подхода (ООП) был обусловлен растущими вычислительными мощностями компьютеров. Подумайте над следующими вопросами (для тех, у кого уже есть опыт работы): почему ООП так активно не использовали ранее (хотя парадигма такая уже была)? Какую проблему решал объектно-ориентированный подход в программировании? Свои ответы я дам позже (в будущем мы детально рассмотрим парадигму ООП и ее применение), а пока вернемся к текущему вопросу.

Рассмотрев два языка из "новой школы", мы должны обратить внимание на дату их появления — это границы 2000-х годов. Что же это значит? Это значит то, что софт на языках "новой школы" только-только начинали создавать. В свою очередь, это говорит нам о том, что весь софт до "новой эры" был написан на языках "старой школы". Это и есть первая часть ответа на наш вопрос, а именно: бОльшая часть софта, на данный момент, написана на языках "старой школы". Как следствие этого существует спрос на специалистов, которые могут поддерживать и развивать уже написанное программное обеспечение. Ведь поддержка существующих продуктов обходится гораздо дешевле, чем создание новых. Особенно когда речь идет о проектах, которые разрабатывались десятилетиями.

Следующий важный момент — это работа с низкоуровневыми абстракциями. Причем не просто работа, а очень быстрая работа. Языки, "исповедующие" ООП, обладают ощутимыми недостатками в части потребления ресурсов (overhead) и скорости работы. Более того, такие языки как Java и C# вам просто не дадут работать с низкоуровневыми сущностями напрямую. Например, пытаясь выйти за границы массива, Вы получите ошибку на этапе компиляции (Compilation Error / Build Error). В лучшем случае компилятор не пропустит эту операцию, в худшем — Вы получите ошибку времени выполнения (Runtime Error), что может привести к нарушению сегментации памяти (Segmentation Fault), краху рабочей системы и ее аварийному завершению. Стоит ли упоминать указатели? Стоит. Для справедливости нужно сказать, что C# позволяет работать с указателями, но это идет вразрез с концепцией языка. Такие языки как C# и Java позиционируются как строго типизированные "безопасные" языки программирования. Строгая типизация (в отличие от Си, где она слабая) позволяет избежать огромного кол-ва ошибок на этапе компиляции (когда мы делаем сборку) и во время выполнения программ.

В отличие от Java и C#, язык Си не ограничивает программиста. Суть авторской задумки заключалась в том, чтобы "не мешать" программисту, так как он лучше знает, что делает. В такой ситуации нам остается лишь доверять компетенции абстрактного "Цукерберга". С помощью языка Си и его политики "не ограничивать программиста", мы можем писать сверхэффективный, кроссплатформенный, малогабаритный код. Но трудность заключается в том, что неограниченные возможности — это большая ответственность. Если Вы не разобрались на 100% в языке Си, это гарантирует 100%-е проблемы в работе вашего софта и его окружения.
2.1K viewsedited  17:55
Открыть/Комментировать
2020-11-08 19:00:34 [О заключительных видео]
В связи с тем, что у меня затянулась работа над одним проектом, я не смог выгрузить заключительные видеоуроки на этой неделе. Обещаю, что на следующей я посвящу этому вопросу все свое время. Почему так получилось? Дело в том, что я записал большое кол-во материала, и побоялся, что Вы просто не усвоите этот объем. Я взял паузу, чтобы отдохнуть, обдумать и не "штамповать" уроки, в ущерб качеству. Пришло время закрыть гештальт.
877 views16:00
Открыть/Комментировать
2020-11-08 14:34:53 [5. Существует ли лучший язык программирования?]
Вне очереди отвечу на этот вопрос, по причине его связи с вопросом под номером [2]: лучшего языка программирования [не существует]. Ответ выше дает разъяснения почему.
828 viewsedited  11:34
Открыть/Комментировать
2020-11-08 13:32:18 [2. Зачем нужно такое кол-во разных языков программирования?]
Одна из главных причин, почему существует такое кол-во разных языков программирования, — это эволюция компьютерного мира. Нельзя перепрыгнуть ключевые стадии прогресса и развития для того, чтобы сразу добиться идеального результата. Дело в том, что каждый язык программирования (далее ЯП) создан для конкретных целей. Каждый ЯП имеет свою область применения. Например, язык Assembly (Assembler, Ассемблер) применяют для работы с процессорами и микроконтроллерами (МК), используя машинные инструкции (op-коды, мнемоники). Язык Си, в свою очередь, применяют для написания системного и пользовательского софта. Такие языки как C# и Java превалируют в коммерческих сферах. Языки R и Python используют в мире наук, экономических и финансовых кругах. JavaScript — в браузерах, мобильных и десктопных (ПК) приложениях. Четких границ использования языков программирования нет. Одни и те же языки могут использоваться для написания софта в разных сферах ИТ (Информационные технологии), но существуют ситуации, когда выбор одного языка превалирует над выбором другого. Все зависит от задач и контекста использования конкретного языка программирования, а также, от уровня знаний разработчика или же целой команды программистов. Со временем разработчики понимают сильные и слабые стороны используемых языков, пытаются их улучшить, либо создать новые, которые больше соответствуют их требованиям и лучше подходят для решения поставленных задач. Отсюда мы делаем вывод, что каждый язык программирования спроектирован для решения конкретных задач и имеет свою сферу применения.
807 views10:32
Открыть/Комментировать
2020-11-07 16:52:02
[Опрос] Выучили ли Вы вышеприведенные термины и авторов?
Anonymous Poll
90%
Да
10%
Нет
80 voters659 views13:52
Открыть/Комментировать
2020-11-06 10:49:06 [Выучить и знать]
GUI — Graphical User Interface (Графический пользовательский интерфейс).
OS — Operating System (Операционная система).
Unix — Операционная система, созданная в Bell Labs (AT&T), послужившая прообразом для современных ОС семейства *unix.
Linux — Операционная система, идеологический потомок UNIX, созданная Линусом Торвальдсом.
Windows — Коммерческая операционная система, созданная Биллом Гейтсом и Полом Алленом.
Dennis Ritchie — Деннис Ричи, автор языка C (Cи), один из разработчиков UNIX.
Linus Torvalds — Линус Торвальдс, автор и разработчик Linux.
Bill Gates — Билл Гейтс, автор и разработчик Windows.
Paul Allen — Пол Аллен, со-автор и разработчик Windows.
Open Source — Открытый исходный код, обычно без каких-либо ограничений, налагаемых на его использование.
674 viewsedited  07:49
Открыть/Комментировать
2020-11-06 09:25:50 [1. Почему Linux, а не Windows?]
В своем ответе я не стану рассказывать о технических различиях двух операционных систем (Операционная система — ОС/OS (Operating System)), так как в данный момент времени это не имеет для нас какого-либо значения. Я хочу обратить ваше внимание на другую сторону обсуждаемого вопроса: с какой целью велась разработка Linux и Windows? Какие задачи они решали? Почему одна из них (Windows), стала популярнее Linux, и до сих пор удерживает бОльшую долю рынка операционных систем? Понимая причины создания вышеприведенных ОС, мы сможем понять почему одни выбирают Linux, а другие — Windows. Мы не будем входить в исторические детали создания вышеназванных ОС, а сделаем ретроспективный анализ ключевых причин.

Начнем с Linux (Автор: Линус Торвальдс). Идеологическим предком Linux послужила другая операционная система под названием UNIX. UNIX была разработана в подразделении Bell Labs компании AT&T (Известный американский телекоммуникационный оператор, компания работает и по сей день). Первые версии UNIX были написаны на языке Assembly (Ассемблер). Но у этого языка существовал (и существует) серьезный минус — это переносимость на разные архитектуры процессоров. Чтобы решить проблему переносимости инженерами Bell Labs был создан язык Си (Автор: Деннис Ричи). Впоследствии ОС UNIX была переписана на чистом Си. ОС UNIX проектировалась как операционная система для программистов и инженеров. Чтобы полноценно пользоваться такой системой, Вам необходимо было знать язык Си, язык оболочки (SHELL) и несколько десятков терминальных команд (требования актуальны и по сей день). ОС Linux — это идеологический потомок ОС UNIX.

В свою очередь ОС Windows (Авторы: Билл Гейтс, Пол Аллен) разрабатывалась как коммерческая операционная система с графическим интерфейсом (GUI — Graphical User Interface). Систему писали для рядовых пользователей, то есть для тех людей, которые не имели отношения к программистам и инженерам, не знали никаких команд и языков, но хотели бы пользоваться компьютером. Важно знать, что в то время не существовало операционных систем с графическим интерфейсом (GUI), который так привычен для нас сегодня (инженеры работали с терминалом, вводя команды). Компания Microsoft, имея финансовые капиталы, поддержку инвесторов и одну из первых [графических] операционных систем, зашла на никем не занятый рынок пользовательских ОС. Очевидно, рядовых пользователей намного больше чем программистов и инженеров вместе взятых, что, в свою очередь, привело к захвату большей части рынка. Теперь мы понимаем, как Windows набрала такую популярность и почему именно она контролирует рынок операционных систем в долевом соотношении. Мы не будем углубляться во все причины успеха компании Microsoft и пойдем дальше.

Получив краткий очерк двух ОС, мы подошли еще к одному важному вопросу: почему я выбрал Linux для обучения / изучения Си? Дело в том, что операционная система Linux, как и UNIX, полностью написана на языке Си. Она является его родной (нативной / native) средой. Это значит, что программируя на Си в среде Linux, Вы получите полную поддержку языка в рамках самой ОС, большое кол-во предустановленных библиотек, обширную и полную документацию. Вдобавок Вы получите огромную кодовую базу [open source] проектов, написанных также на языке Си. На чем написан штатный софт (software) Linux попробуйте догадаться сами. ОС Linux — это экосистема для языка Си. Работая в Linux, Вы получите ценный практический опыт как инженер-программист, чего (пока) нельзя сказать о Windows.
639 viewsedited  06:25
Открыть/Комментировать
2020-11-02 16:19:51 [За лояльность и ожидание]
Все, что мы делаем, имеет какую-то цену. Хочу вас, друзья, подписчики и камрады, поблагодарить за терпение и ожидание! В Slack'e я предлагал сделать бесплатным курс на выбор, для тех, кто уже приобрел по предзаказу новый, — все это в силе. После выгрузки заключительных видео, в Slack'e, я проведу опрос на тему: какой курс вы бы хотели получить? Все, кто отпишется, получат в личном кабинете доступ к выбранному курсу. Курс появится в "Моих покупках". Можно выбрать любой из доступных курсов, если вы сделали предзаказ на новый. Также можно сделать замену курса, но не первой части по языку Си.
574 views13:19
Открыть/Комментировать