Можно же было просто выучить HTML

Можно же было просто выучить HTML

IT-юмор

5.6K постов52.4K подписчиков

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

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
66
Автор поста оценил этот комментарий

Ассемблер хорош для понимания сути программирования, осознания того, что происходит "там внутри". То есть, именно для обучения - лабораторных работ (циклы, ветвления, и т. д.). Но писать на ассемблере программы - это либо "хобби" (ну есть же люди, которые сами миниатюрные шестерёнки из яичной скорлупы вытачивают и из них часы делают), либо мазохизм.

А главное - это ведь страшно неэффективно с точки зрения рабочего времени. Любую программу на ассемблере писать долго и нудно, и страшно подумать, если потребуется порт на другую архитектуру.

раскрыть ветку (97)
15
Автор поста оценил этот комментарий
Иллюстрация к комментарию
44
Автор поста оценил этот комментарий

Программист микроконтроллеров с тобой вообще не согласен.

раскрыть ветку (27)
20
DELETED
Автор поста оценил этот комментарий

Зачем ASM если есть С?

раскрыть ветку (16)
7
Автор поста оценил этот комментарий
Писать С++
раскрыть ветку (9)
21
DELETED
Автор поста оценил этот комментарий

У этого языка нет минусов. Только плюсы

раскрыть ветку (8)
8
Автор поста оценил этот комментарий

Разработчик С++ с вами не согласен, минусов огромное множество)

раскрыть ветку (7)
5
DELETED
Автор поста оценил этот комментарий

А вы их перемножте между собой. Минус на минус даёт плюс)

раскрыть ветку (5)
6
Автор поста оценил этот комментарий

А я так и делаю ;)


на самом деле куча хейта языка С++ (Go, Java, Javascript, <любой достаточно популярный>) зачастую просто от непонимания целей языка. У С++ были вполне последовательные цели и путь развития, и он развивался так, как хотел его автор. То что его идея оказалась полезной сотням крупных компаний с нереально большим объемом кода и кучей легаси - прекрасно. Но то что люди начинают писать проект для себя и сразу ощущают БОЛЬ - ну, простите, язык и не постулировал нигде что он для этого хорошо годится.

"вот я в языке попробовал сделать такое, и получилось херня" - не делайте так :)

ругать С++ за то что он не дружественный новичкам - на мой взгляд, тупо. Ругать нужно за такие вещи, когда язык развивается вопреки постулатам. Например, обещали "не платишь за то что не используешь, а если используешь - плата не отличается от эффективной реализации ручками", а на деле имеешь жирные исключения (я в курсе, над этим активно ведется работа, static exceptions должны уменьшить боль), ну есть и другие примеры тоже.


p.s. особенно радуют люди (тролли?) которые кричат "проблемы в С++ от совместимости с С, выкиньте ее и сделайте нормальный язык", нет, совместимость это цель №1, никому нахер не будет нужен такой С++, ну или получится просто еще один C#, который опять же второй уже не нужен)

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

Я не связал свою жизнь с программированием, да и в целом был довольно нерадивым студентом, но до сих пор не понимаю страданий по поводу ASM и C++
Достаточно в них немного въехать - как они становятся удобным и податливым инструментом.
Если применять их не по назначению - конечно результат будет говно - как и с любым другим инструментом, от молотка до коллайдера.

раскрыть ветку (1)
5
Автор поста оценил этот комментарий

Я уже третью версию комментария пытаюсь написать с нуля))


Вы все правы про назначение, молоток и пилу, и все дела, но я недаром акцент ставил на "целях". Область применения языка понять легко. Это можно сделать прочитав страничку в Википедии, да примеры кода посмотреть, ну может 1-2 проекта еще типичных.


Чтобы понять дух, идеологию, цели языка, нужно гораааздо больше времени. 

Вот пример, недавно была статья на хабре, про то как хреново С++ подходит для гейм-индустрии (риальне?). Ладно, что там ставится в претензии к С++? Овердохера абстракции? дыры из-за совместимости  с С? Может быть дебильный ADL?  Ну или классика с препроцессором и хидер файлами? Да не, всего лишь "ой если подключить Boost, все долго компилится" (это все равно что за монструозный ZF кто-то ругал PHP например) и "я использую <algorithm> в дебаге и оно торомозит, а если оптимизацию включаю, то трейсится не очень, ощущения не те". Т.е. претензия уже к конкретному тулчейну и конкретному поставщику стандартной библиотеки)  Вспоминается "Volvo, fix it please!".

да, проблема решается простановкой директив отрубающих оптимизации в интересующих тебя местах, но кого это волнует, хайп-то уже поднят, язык С++ это говно. Говно-то говно, но вы критикуете совсем не то, ребята)
2
Автор поста оценил этот комментарий

а плюс на плюс дает си шарп

раскрыть ветку (1)
Автор поста оценил этот комментарий

в шарпе четыре плюса

ещё комментарий
3
DELETED
Автор поста оценил этот комментарий

Если у тебя какая-нибудь attiny10, а ты туда решил прикрутить, например, i2c или вообще уарт, то лучше на ассемблере. Если ты будешь писать на сях, код не будет оптимизирован и вылизан, собственно, поэтому у тебя только уарт туда и поместится (в 1кб), да и то не факт.

раскрыть ветку (4)
1
Автор поста оценил этот комментарий
При цене современных МК проще поставить что-то покруче, но не сваливаться в асм.
раскрыть ветку (3)
DELETED
Автор поста оценил этот комментарий

Ну не скажи. Я за 100шт 13-х тинек на алике отдаю 1.5к рублей. А вот за 100шт атмег 238п на том же алике просят 8,3к рубля. Не знаю как у тебя с деньгами, а я при такой разнице лучше мозг напрягу.

раскрыть ветку (2)
Автор поста оценил этот комментарий
Я вот недавно как раз был на собеседовании в фирме где такой же подход: поставить дешманский МК, усраться, но воткнуть огромный код в его мелкую память.
У меня возникает законный вопрос:
А что будете делать если упрётесь в даже на асме в свой килобайт памяти? Из-за необходимости добавить плюшку, либо исправить косяк, не важно. А я скажу что. Будете переразводить плату чтобы поставить аттини24. Если это серийная разработка, а не гаражная поделка, это потянет за собой изменение конструкторской и технологической документации, необходимость новых испытаний и т.д., да всё пойдёт по пизде. А вот если бы изначально не жадничали и поставили камень всего лишь в 2 раза дороже, этого бы не случилось. Я так легко говорю про увеличение цены МК в 2 раза потому что цена изделия это не цена МК в нём и даже не себестоимость всех запчастей. Там ещё куча статей добавляется. И вот смысл экономить на начинке в таком случае?
раскрыть ветку (1)
1
DELETED
Автор поста оценил этот комментарий

Вот скажи мне, мил человек. Если мне требуется уравлять шим одного канала, при этом, получать данные по уарт и по сенсорной кнопке, при этом, саму плату желательно сделать как можно мельче, скажи, на кой хер я буду ставить туда хотя бы даже 24-ю тиньку? Может туда вообще воткнуть какой-нибудь at90usb1287? Для такого проекта, очевидно, что 13 тиньки будет предостаточно. Если ты изначально предполагаешь, что схема может усложниться, нет ограничений по размерам, то да, ставишь мк покузявее, заодно сразу разводя дорожки под весь возможный фунционал.

А если ты делаешь простейший датчик, который тебе должен потом по уарт инфу слать - там из задач только уарт и обработка adc. Все. Нахрена там крутой мк?

1
Автор поста оценил этот комментарий

Согласен с тобой, у нас на работе куча программистов микроконтроллеров и никто на асме не пишет, при том что пишут для ПЛИС код, а не под навороченные процы.

Автор поста оценил этот комментарий

Щас такие микроконтроллеры, что уже и c++ кажется устаревшим. Даешь С# на МК!!!

раскрыть ветку (3)
Автор поста оценил этот комментарий

Даёшь МК с JAVA-машиной на борту!

раскрыть ветку (2)
Автор поста оценил этот комментарий

А есть уже же?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Сим-карты, не?

ещё комментарии
14
Автор поста оценил этот комментарий
Как нам в вузе объясняли, на ассемблер писать надо быть наркоманом, но делать вставки в прогу профитно, т. К. Прога на ассемблер выполняется быстрее чем на с++
раскрыть ветку (7)
60
Автор поста оценил этот комментарий

Это вам объясняли те, кто учился сам очень давно. Современный компилятор по качеству оптимизации машинного кода в 99 случаях из 100 побьёт любого программиста с его вставками.

раскрыть ветку (6)
30
Автор поста оценил этот комментарий
Давайте помянем тех хороших людей, которые написали современные компиляторы
раскрыть ветку (1)
11
Автор поста оценил этот комментарий
Иллюстрация к комментарию
10
Автор поста оценил этот комментарий

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

раскрыть ветку (2)
Автор поста оценил этот комментарий

Баловство это всё. Берется godbolt и сразу видно, что генерится в результате. На ассемблере. И вообще, есть дядя Mike Acton, он уже всё объяснял.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Речь шла о полезности асм вставок а не о том как дизасм посмотреть... Да и тулзовин для этого сторонних не надо, в любую нормальную ide встроено.

2
Автор поста оценил этот комментарий

Как вариант под конкретные модели железок при наличии в них весьма специфичных модулей с завязкой на их логику работы по типу MMX/SSE и прочего.

4
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий
https://m.habr.com/ru/post/318916/
"Писать веб-сайты на ассемблере полезно и приятно".
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Опасный человек.
Автор поста оценил этот комментарий

разве в друвах для железа и всяких билсах/уефи не юзаются значительные фрагменты кода на асме?

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Сомневаюсь, по сути "дрова", это та же программа получающая от ОС какие-то данные и пихающая их в железку, и наоборот, получающая с железки данные и сообщающая эти сведения ОС. Их вообще можно писать на любом языке, поддерживающем компиляцию в "нативный" код.

Что же касается BIOS/UEFI, поскольку никогда не задумывался, погуглил.

https://softwareengineering.stackexchange.com/questions/2986...

Нашёл обсуждение, из которого код BIOS с начала 90-х писали уже на С (не ++). Сейчас, наверное и на плюсах пишут. Если и остались там ручные ассемблерные вставки, то это "наследие тяжёлого прошлого".

ещё комментарии
1
Автор поста оценил этот комментарий

Для понимания сути пойдет и алгоритмический язык.

раскрыть ветку (7)
7
Автор поста оценил этот комментарий

У вас ведь нет профильного образования, так ведь?


Без знаний базовых принципов аппаратной части многие вещи приходится объяснять на "религиозном" уровне. Например, утечки памяти или многопоточное/параллельное выполнение. Если человек тупо кодит конфы в 1С или лендинги на пыхе, то ему, наверное, и не надо. Но как только нужно что-то большее, тут сразу же - "приплыли".

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну я не верно понял смысл комментария.

Автор поста оценил этот комментарий

Нет, не пойдёт. Вы поймете, как писать алгоритмы, но не будете понимать, как работает процессор.

раскрыть ветку (4)
2
Автор поста оценил этот комментарий

А как ассемблер должен объяснить работу процессора?

раскрыть ветку (3)
3
Автор поста оценил этот комментарий

Тут наоборот. Для того, чтобы программировать на ассемблере, нужно знать, как работает процессор. Если не знаешь - программы не напишешь. А написание программ - закрепляет знание (хотя бы набор инструкций в памяти отложится).

раскрыть ветку (2)
Автор поста оценил этот комментарий

Я не знал как процессор работает, и судя по всему не знаю, но писал же

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

А никто и не говорит, что знать обязательно. Но знаний лишних не бывает. Я лишь написал - ассемблер полезен когда учишься программировать.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку