[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]

[Burichan] [Foliant] [Futaba] [Greenhell] [Gurochan] [Photon] - [Home] [Manage] [Archive]

[Return]
Posting mode: Reply
Leave these fields empty (spam trap):
Name
Link
Subject
Comment
File
Verification
Password (for post and file deletion)
  • Supported file types are: GIF, JPG, PDF, PNG
  • Maximum file size allowed is 20480 KB.
  • Images greater than 200x200 pixels will be thumbnailed.

File: 1551428152368.png -(1272125 B, 1200x1800) Thumbnail displayed, click image for full size.
1272125 No.162452  

Привет, Новерь!
В общем, я столкнулся с такой проблемой, что не знаю, как правильно подойти к изучению программирования… Оно для меня кажется магией!
Да, у меня получается что-то там писать на макросах Excel'я (VBA), писать простенькие программки в Delphi 7 или Lazarus, да HTML + CSS (на уровне "всё вкривь и вкось"). Великий и могучий C++ я знаю лишь на уровне решения задач по математике… Пробовал учить Python, Lua, JavaScript, php, но дальше тех же задачек по математике вроде решения квадратных уравнений я не продвинулся. Впрочем, для Ren'Py достаточно знать Python и на таком уровне. Lua мне нужен для того, чтобы играть в Minecraft с модами OpenComputers и ComputerCraft, где для базовых вещей тоже не требуется какого-то серьёзного уровня. В SQL вообще знаю лишь четыер команды: INSERT, UPDATE, DELETE, SELECT.
Да, вот тут мне и пршило в голову, что, наверное, поступаю как-то неправильно, а именно — программирование кажется магией! Я совершенно не разбираюсь, что там делает тот же Delphi на более глубоком уровне, когда выставляются объекты на форме, либо подключается дополнительная библиотека — её устройство тоже загадка для меня.
Как мне кажется, программист с таким подходом к искусству повелевания ЭВМ ничем не отличается от глупого сотрудника офиса, что не может найти нужную ему функцию в MS Word. Ибо, что для тех же Java-программистов, что для типичного юзера, работа за компьютером, равно как и работа самого компьютера, является магией.
Вот как, например, происходит отрисовка 3D-изображения на мониторе? Да, подключается графическая библиотека, а дальше что? Вот именно.
Как вообще устроена операционная система?
Как работает Интернет?
Как антивирусное ПО анализирует код программы?
Да, для усвоения всего о компьютерах банально не хватит жизни, но хотя бы на базовом уровне иметь представления всё же следует. Как, например, физики знают о смежных областях, но более углублены в свою.
Кстати, о физике.
Работы железа для меня — тоже магия. От лекций в колледже по архитектуре ЭВМ вопросов стало лишь больше…
Да, в том же Minecraft простенькие сумматоры можно построить, чтобы немного понять, но как устроены современные процессоры общего назначения? Понимаю, что разница тут такая же, как между одноклеточным организмом и многоклеточным.
Получается, что ради упрощения понимания человек создаёт абстракции, но эти же абстракции мешают усвоить более глубинный уровень.
Проблема в том, что, устав на учёбе, я не могу читать что-либо серьёзное…
А зачем нужно знать, что происходит "под капотом" у компьютера?
Во-первых, интересно.
Во-вторых, это самая настоящая власть в её чистом виде: бесприкословное, при соблюдении некоторых условий, выполнение человческих приказов машиной. Вот именно для этого, чтобы знать, что же там нагородил компилятор с моими командами, и нужно хотя бы немного мочь в low level.
Да, являясь, как выразилась одна из девчонок, с которой я пытался подружиться, "чмошником без дурзей", с помощью программирования я могу иметь власть над машинами, пусть и она имеет для меня, при текущем уровне знаний, магическую природу. При этом я могу приносить пользу людям, создавая полезные программы.
Хотя, как мне каежтся, все полезные программы уже давно созданы, появилось большое количество их аналогов…
Но власть над ЭВМ. Самая настоящая власть — что может быть лучше?

>> No.162453  

>>162452

> Да, вот тут мне и пршило в голову, что, наверное, поступаю как-то неправильно, а именно — программирование кажется магией! Я совершенно не разбираюсь, что там делает тот же Delphi на более глубоком уровне, когда выставляются объекты на форме, либо подключается дополнительная библиотека — её устройство тоже загадка для меня.

Ты только что описал 90% програмистов. Большая часть твоих вопросов имеет весьма опосредованное отношение к программированию.

>> No.162455  

>>162453
Эти "программисты" напоминают психологов: не разбираемся, что мыслительные процессы напрямую зависят от химических веществ в нашем организме, так при депрессии будем советовать держать в руках воображаемый шарик, например, чем опить человека антидепрессантами. А он самовыпилиться может!
Либо вообще у человека повреждение головного мозга вроде аутизма, а психолог говорит, что человек просто следует анальному вектору.
Примерно так и в программировании.

>> No.162458  

>>162452

>Вот именно для этого, чтобы знать, что же там нагородил компилятор с моими командами, и нужно хотя бы немного мочь в low level.

Вставил ещё одну планку памяти и не ебёшь мозг.

>При этом я могу приносить пользу людям, создавая полезные программы.

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

>> No.162462  
File: 1551438503288.jpg -(20120 B, 479x357) Thumbnail displayed, click image for full size.
20120

Есть уже смежный по тематике тред и всего-то навсего на пятой странице: >>159658

>>162458

> Вставил ещё одну планку памяти и не ебёшь мозг.

Зато ты ебёшь его тысячам пользователей — не ламерков пархатых, а матёрых пользователей с винтажным железом — и лично мне.
Силой, данной мне гиассом, повелеваю: крудолепы на электронах пусть да подавятся хайповой смузей и умрут в смешных корчах.

>> No.162466  
File: 1551451318051.gif -(1419 B, 52x19) Thumbnail displayed, click image for full size.
1419

>>162462

>Зато ты ебёшь его тысячам пользователей — не ламерков пархатых, а матёрых пользователей с винтажным железом — и лично мне.

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

>> No.162468  

>>162466
Как хорошо, что мой редактор (emacs), мои плееры (mpv, mplayer, vlc) и мой файловый менеджер (ну тут уже много всего, можно взять банальный mc или thunar, пользуюсь разными de на разных компах, так сложилось исторически) написаны не на электроне. А, ну ещё terminator, который терминал. И что там у нас в тренде писать на электроне, калькуляторы? xcalc вроде подойдёт.

И даже покупать эти программные продукты особо не надо (ну разве что поддержку к ним).

>> No.162471  

>>162468

>мои плееры (mpv, mplayer, vlc) и мой файловый менеджер (ну тут уже много всего, можно взять банальный mc или thunar, пользуюсь разными de на разных компах, так сложилось исторически)

Зачем тебе куча всего, когда у тебя есть

>мой редактор (emacs)

?

>> No.162473  

>>162471
Я его не до конца и он не везде у меня есть.

Ну и шутки про редактор-ОС слегка преувеличены.

>> No.162483  

>>162455
Вообще эти психологи от чего-нибудь помогают?
Я просто знаю пару немного поехавших, и им вообще это не помогло, как были поехавшие, так и остались.

>> No.162484  

>>162452

>Вот как, например, происходит отрисовка 3D-изображения на мониторе? Да, подключается графическая библиотека, а дальше что? Вот именно.

Зависит от железок, очевидно же.
Под MS-DOS с каким-нибудь QBASIC можно сделать что-то вроде 3D используя пару формул, но это будет крайне медленным.
В современных реалиях есть всякие DirectX и OpenGL, которые общаются с драйверами видеокарты, где происходит магия. Для создания этой самой магии нужен ебаный штаб инженеров и программистов. Понять эту магию одному человеку будет ну нереально.

>Как вообще устроена операционная система?

ОС - программа, которая распределяет ресурсы компьютера, и следит за памятью. Там происходит весьма низкоуровневая магия, которую вполне можно понять прочитав пару книжек и даташитов по ассемблеру.

>Как работает Интернет?

Костыль из 1970-х. Тут, ВНЕЗАПНО, все относительно просто. За пару статей на вики можно вполне вкурить, что происходит.

>Как антивирусное ПО анализирует код программы?

Военная тайна. Скорее всего шпионит за пользователем и сканирует каждый новый файл.
Антивирусный сканер же вещь крайне простая, просто ищет код вируса в программах. Настолько просто.

>но как устроены современные процессоры общего назначения? Понимаю, что разница тут такая же, как между одноклеточным организмом и многоклеточным.

Это понять крайне сложно, в силу того, что современный процессор, это костыли из 1980-х вместе с современными костылями.
Понять, как работает 8086 или 80286 может и можно, а вот современные - сомневаюсь, к тому же вся информация от Intel распространяется под NDA.

Так что да, современный ПК настолько сложная вещь, что это воистину черный ящик.

>> No.162495  

>>162484

>можно сделать что-то вроде 3D используя пару формул, но это будет крайне медленным.

С современными скоростями (да и не очень, думаю, первого пентиума уже хватило бы) это было бы не таким медленным.

>> No.162503  

>>162452
Тебе нужно изучить программирование или электронику? Потому что по твоим словам получается, что последнее.

>>162458

> Полезная программа - это та, за разработку которой тебе заплатили.

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

>> No.162507  

>>162483
Психологи - нет. Психиатры могут тебе таблетосы выписать. Психотерапевты могут панические атаки вылечить.

>> No.162509  
File: 1551481609493.jpg -(299998 B, 700x988) Thumbnail displayed, click image for full size.
299998

>>162458

>Вставил ещё одну планку памяти и не ебёшь мозг.

Да-да, а как быть с маломощными устройствами?
Из-за таких вот "программистов" сейчас имеет то, что простенькая программка может весить более 100 Мб.

>Если хочешь вирусописателем быть

Не вирусописателем, а повелителем компьютеров. :3
>>162503

>Тебе нужно изучить программирование или электронику?

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

>> No.162510  

>>162509

> Для программирования на низком уровне нужно понимать электронику.

Нет, для изучения электроники изучать программирование не нужно (максимум, сишку).

>> No.162519  

>>162509

>Да-да, а как быть с маломощными устройствами?

А ОП для маломощных устройств писать собрался?
Всяким малиновым пирогам поставили гигабайт памяти, вместо того, чтобы учить всех на сишечке, как минимум, писать. В мире мало спроса на высокоэффективные программы, всем электроны подавай, да побыстрее, а если кто захочет не электроны, придётся выложить круглую сумму.
Но и среди тех, кто пишет из идеологических соображений, полно любителей этого добра.
Вот где собрать DE как в Беоське? Таких уж нет.

>> No.162520  
File: 1551510337773.png -(468840 B, 663x1000) Thumbnail displayed, click image for full size.
468840

>>162509
Низкоуровневое программирование бывает разное же. Это может программирование микроконтроллеров. Это может быть написание драйверов для девайсов. Это может быть написание кода для ядра Лунукса. Может быть написание компиляторов каких-нибудь. И вовсе не обязательно разбираться в электронике для того чтобы с этим работать. Ну как тебе пригодится знание правил Кирхгофа или понимание работы JK-триггера для написания модуля ядра для Линукса? Сейчас даже в программирование микроконтроллеров стараются абстрагироваться от низкоуровневой начинки и лепят сотни киллобайт дерьма, так чтобы погроммеру, надо было несколько кнопок жумкнуть в IDE, и набрасать несколько строк кода, вместо того чтобы бодаться с даташитом и пердолить регистры. Но

>> No.162523  

>>162509

>Из-за таких вот "программистов"

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

>> No.162525  

>>162523
Где-то тут Никита невзначай всё крутится и как бы пытается ввернуть http://tonsky.me/blog/disenchantment/

>> No.162526  
File: 1551525572533.jpg -(7238 B, 210x214) Thumbnail displayed, click image for full size.
7238

Поставил себе компилятор и фреймворк Espressif IDF — именно так производитель в своих доках предлагает кодить под эту железку — и опешил от нового уровня абстракции.
Директория с фреймворком весит 700 мегабайт, со скомпилированным проектом — почти 100.
Охуеть просто. Не для этого я всей этой дрянью заниматься начал!
Алсо, ненавижу магию, когда что-то происходит без моего понимания и не по моему приказу; но в директории ворох мейкфайлов и скрипты на питоне, ключевой из которых — esptool.py. Придётся теперь разматывать этот клубок инклюдов и переменных, чтобы разобраться, что откуда вызывается и куда девается. И, по моему опыту, самому что-то написать бывает проще, чем в чужом копаться. Заодно обращаться будет легче, зная, что именно оно делает.

Если где-то и написано, как просто скомпилировать бинарий и просто записать его по нужному оффсету, я не нашёл.

А может, я неправильно представляю, как с этой ебалдой работать?

Светодиодиками помигал. Больше времени потратил на борьбу с инструментом, чем собственно на кодинг.

ræpost

>> No.162527  

>>162526

> Директория с фреймворком весит 700 мегабайт, со скомпилированным проектом — почти 100.

Ты просто не пробовал под ведро погромировать.

>> No.162528  

>>162526

>Директория с фреймворком весит 700
>мегабайт, со скомпилированным проектом — почти 100

Собери последний андроид, что ли, там 200+Гб будет.

>> No.162545  

>>162452
Каждый раз грустно от мёртвой девочки в свитере.

>> No.162549  

>>162545
У нас в колледже препод на макросах Excel'я (VBA) основы программирования преподаёт.
Так что ничего не мёртвая она.
Тем более, что ей .NET вторую жизнь дал.

>> No.162552  

>>162545
Девочка в зелёной куртке мертвее.
Олсо, свободно распространяемые девочки красивее.

>> No.162557  

>>162545
А что за трон девочки в свитере?

>> No.162559  

>>162557
Выглядит как lego

>> No.162578  
File: 1551638354221.gif -(5410 B, 200x200) Thumbnail displayed, click image for full size.
5410

>>162557
Логотип.

>> No.162579  

>>162578
Концептуальненько.

>> No.162580  
File: 1551644700045.gif -(1121 B, 33x21) Thumbnail displayed, click image for full size.
1121

>>162578
А есть ли компилятор Basic под GNU/Linux?

>> No.162583  

>>162580
Есть. Как тут отмечали выше, дотнет в некотором роде вдохнул вторую жизнь в вб, и сейчас можно скомпилировать под моно на линуксах.
https://www.ossblog.org/mono-basic-visual-basic-compiler-runtime/

>> No.162584  
File: 1551650943512.jpg -(70035 B, 430x600) Thumbnail displayed, click image for full size.
70035

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

http://stolyarov.info/books/programming_intro

>> No.162585  

>>162583
А есть ли Pascal? Или какая-нибудь альтернатива QBasic?
Я просто пообещал одному человеку запилить простой WM для xorg, но я хочу чтобы он раскалился до бела разбираясь в исходниках.

>> No.162586  

>>162585
Есть freepascal.

>> No.162588  

>>162586
Хм. Идеально.
Можно ли его как-нибудь с сишными библиотеками подружить?

>> No.162592  

>>162588
http://wiki.freepascal.org/C_to_Pascal

>> No.162593  

>>162585
Почему бы не взять какой-нибудь haskell или erlang?

>> No.162595  
File: 1551692126884.png -(146043 B, 300x300) Thumbnail displayed, click image for full size.
146043

>>162593
Скорее второй, потому что xmonad (WM на хаскеле) уже есть, а на эрланге нет, по крайней мере, известных.

После этого не забудь исходники вскрыть, лулз обеспечен.

>> No.162669  

>>162585
Используй ассемблер, Люк.

>> No.162675  

>>162669
Я бы рад, только вот я сам особо не понимаю его.
Точнее как, понимаю, но крайне плохо. Не мой уровень (пока) короче.
>>162595
Я открою исходники. Вот только еще не определился, FreeBasic с прикрученными сишными библиотеками для взаимодействия с xorg, или же FreePascal.

>> No.162676  

>>162675
А может даже и какой-нибудь другой диалект BASIC'a.
Блин, чего бы дунуть, чтобы сделать правильный выбор? Керосин уже не помогает.

>> No.162677  

Программирование это скучно, я читал.

>> No.162678  
File: 1551753191397.jpg -(58404 B, 300x428) Thumbnail displayed, click image for full size.
58404
> Pascal

Навевает ностальгические жёлто-синие воспоминания с объявлениями

program Programma;

и переменными

vot_takaja_peremennaja1

в коде несмышлёных детишек, который приходилось читать.

>> No.162694  
File: 1551781396340.jpg -(61610 B, 444x500) Thumbnail displayed, click image for full size.
61610

Новерь, а новерь.
А вот меня кормили Прологом. Рассказывали, что логическое программирование очень крутое и что им можно даже гвозди забивать.
А я увидел ту же самую SQL-базу, только в профиль. И развидеть не могу.
Может, здесь есть просвещённые личности, которые смогут показать, что Пролог нечто более крутое?

>> No.162697  

>>162694

> Рассказывали, что логическое программирование очень крутое и что им можно даже гвозди забивать.

Если тебе кто-то рассказывает про серебряную пулю - не верь ему.

>> No.162703  

>>162697
А куда тогда это логическое программирование?

>> No.162739  
File: 1551943245548.jpg -(5115050 B, 318x473) Thumbnail displayed, click image for full size.
5115050

>>162584
«Код» Чарльза Петцольда тоже известная. Начинается с разбора логических схем.

Рилейтед: .zip.jpg

>> No.162812  
File: 1552239931588.jpg -(132091 B, 629x960) Thumbnail displayed, click image for full size.
132091
>> No.162923  
File: 1552485445156.jpg -(150616 B, 511x562) Thumbnail displayed, click image for full size.
150616

ОП, все эти низкоуровневые знания помогают программировать (и то не везде), но не заменяют навыка собственно составлять программы и объяснять машине свои приказы.

У меня другая трудность: иногда сажусь что-то писать и просто не знаю, что делать.
Упрощённый пример. Ну вот, строка. Надо найти в ней подстроку… И тут в моей голове начинается хаос: пусть первый цикл итерирует по символам оригинальной строки, а второй по символам искомой, и увеличивает счётчик совпавших символов; если следующий символ не совпадает, счётчик сбрасывается в ноль и управление передаётся первому циклу.
Вроде так.
Пытаюсь записать, используя предлагаемые языком конструкции, и оно не работает. Чиркаю схемы на бумажке, часто это помогает. Не блок-схемы или матмодель, а так, мне одному понятные.
Алгоритмизация сильно хромает.
Кормейн меня этому научит?

>> No.162944  

>>162923
Кормен крутой, но сначала лучше проще решать МНОГО мелких проблем, мозг тренируется постепенно

https://www.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/

>> No.162970  

Никак не могу прочитать HTDP. На мобильнике трудно читать мелкие буквы, на пеке забываешь, где закладка.

>> No.162971  

>>162970
Никогда не пользуюсь закладками.

>> No.162974  

>>162970

Делай курс с edX, чо читать просто так

>> No.162986  

>>162974
Не могу в курсы, нужно вовремя всё делать.

>> No.162989  

Учи JS

>> No.163005  

JS вообще не надо учить, достаточно знать один сиподобный язык, один скриптовый и референс под рукой.

>> No.163006  

Достаточно знать одну сиподобную скриптовую перловку.

>> No.163007  

>>163005
>>163006 зачем ОП сразу в насильники вербовать. я ему предлагаю начать с мелкого хулиганства. Главное, чтобы на жиквери не подсел => петуком стал

>> No.163012  

>>163007
Сорта JS.

>> No.163013  

>>163007
Ещё раз: учить JS - слишком много чести для говна, которое можно использовать, выучив нормальный язык и список грабель JS.
Это твоё "мелкое хулиганство", если его учить первым, нехило так корёжит психику и ломает мозг, прямо на уровне васика, после чего любой, выучивший js первым языком, пересядет на любой другой нормальный язык разве что с дикими криками и болью. А чаще всего не пересядет.
Ещё js-программисты не слышали об экономии ресурсов от слова совсем, поэтому, как только стоит их выпустить из своего уютного загончика, всё, к чему они прикасаются, обрастает десятком nosql-баз данных, mq и прочих жирных вещей, причём, чем жирнее, тем лучше, а если можно прибить чужой saass - так это вообще замечательно. Целесообразность прибития не рассматривается, конечно же. Просто им так удобнее, все js-программисты на твиттере ставят лайки, чем мы хуже?

>> No.163014  

>>163013

> Это твоё "мелкое хулиганство", если его учить первым, нехило так корёжит психику и ломает мозг, прямо на уровне васика

Как будто другие языки не корёжат.

> Ещё js-программисты не слышали об экономии ресурсов от слова совсем, поэтому, как только стоит их выпустить из своего уютного загончика <...>

Как будто другие программисты ведут себя иначе.

>> No.163015  

>>163013

> Ещё js-программисты не слышали об экономии ресурсов от слова совсем

Если заниматься ресурсодрочерством вместо собственно программирования то полезный выхлоп сокращается раза эдак в три минимум.

>> No.163016  

>>163015
Откуда цифра?

>> No.163017  

>>163016
Собственный опыт.

>> No.163019  

>>163017
Мой опыт говорит, что цифра примерно в пару раз выше.

>> No.163021  
File: 1552756185819.png -(593777 B, 1920x1080) Thumbnail displayed, click image for full size.
593777

А мой опыт говорит, что программа будет выполнена больше раз, чем написана. И работать будет дольше, чем её писали.

>> No.163023  

>>163021
Много раз писал программы, которые выполнялись только один раз.

>> No.163024  

>>163021
А мой опыт говорит, что не дольше, чем если бы я делал её работу вручную.

>> No.163026  

>>163023
Кажется, кто-то у нас не пишет на башике, например. Это, кстати, беда среди js-пейсателей: большая их часть страшно боится башика и awk. И перла, но это уже немножко другая история.
Вообще, было бы интересно понять, что творится в голове у человека, посоветовавшего *учить* DSL для браузеров. Ноду в расчёт не берём: из ниши инструмента профессионально освоивших DSL для браузера она так и не вылезла. Да и не вылезет, кому сдался этот цирк?
>>163015
Знаешь, хранить настройки локального скрипта в далёкой базе данных может только неисправимый человек. Пользовать удалённую БД вместо локальной, особенно когда данных кот наплакал - тоже.
>>163015
Если полезный выхлоп мерить в загаженной памяти, то да. У меня примерно так получалось, когда сравнивал кондовые сишные биндинги одной библиотеки с её пропиаренным дальше некуда скриптонаписанным аналогом.
>>163014
Если бы другие программисты не вели себя иначе, мой редактор бы намертво подвисал при запуске проекта, а при открытии больше трёх-пяти приложений вместе вылезал бы oom reaper.

>> No.163028  

>>163026

> Кажется, кто-то у нас не пишет на башике, например.

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

> Ноду в расчёт не берём: из ниши инструмента профессионально освоивших DSL для браузера она так и не вылезла. Да и не вылезет, кому сдался этот цирк?

Звучит крайне холиварно.

> Знаешь, хранить настройки локального скрипта в далёкой базе данных может только неисправимый человек. Пользовать удалённую БД вместо локальной, особенно когда данных кот наплакал - тоже.

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

> Если полезный выхлоп мерить в загаженной памяти, то да.

Полезный выхлоп это результат. А так можно и до подметания плаца ломом докатиться.

>> No.163029  

>>163026

>У меня примерно так получалось, когда сравнивал кондовые сишные биндинги одной библиотеки с её пропиаренным дальше некуда скриптонаписанным аналогом.

Заинтриговал. Что это?

>> No.163030  

>>163023
Если значение используется лишь однажды, то переменную не нужно объявлять, ведь её значение никогда не поменяется (на то она и переменная). То же самое и с программами, их пишут для выполнения каких-то регулярных задач, и если нужно сделать один раз - то ты пишешь скрипт на говне вроде ноды или перла и потом выпиливаешь его нахрен из своей системы навсегда.

>> No.163033  

Переменные не нужны, если есть адрес памяти!

>> No.163034  

>>163030
А если дважды?

>> No.163035  

>>163034
Вот такие случаи заставляют понижать свой кпд. Ты понимаешь, что решение будет использовано раз-два и потом больше не понадобится, но всё равно пишешь программу, потому что вручную задачу выполнить нельзя. А если писать, то писать нормально же.

>> No.163091  
File: 1552967325095.jpg -(205448 B, 850x1197) Thumbnail displayed, click image for full size.
205448

>>163030

>Если значение используется лишь однажды, то переменную не нужно объявлять

Вы бы это моему преподу по основам программирования сказали — сразу двойку получили, ибо нужно обязательно объявлять все переменные, как он говорил.
Да и Pascal без объявления переменных не работает вроде.

>> No.163092  

>>163091

> Pascal

Где он ещё используется, кроме обучения школьников 10-11 классов основам погроммирования?

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

Старпёр 60 лвл? Пусть откроет любой код на том же JS и посмотрит.

>> No.163097  

>>163092
Delphi одно время был весьма популярным языком.

>> No.163118  
File: 1553007908137.png -(193156 B, 437x284) Thumbnail displayed, click image for full size.
193156
>Если значение используется лишь однажды, то переменную не нужно объявлять

Не понел. В смысле магические значения предлагаешь использовать? Или использовать переменную без инициализации? Ты нострадамус дохуя? Наперед знаешь, сколько раз будет использоваться переменная? Или думаешь, что людям, редактирующим твой код, будет по кайфу при виде каждой новой переменной перепроверять, объявлена она, или нет, а при виде каждого магического значения разбираться, откуда оно вылезло? А как тебе яваскрипт, где неправильное объявление пробивает область видимости? Если вместо нее предлагаешь объявить константу, то ок, но вообще без объявления - ничего не понимаю! Родина им дала переменные — объявляй! Объявляй переменные, блядь! «Не хочу, хочу жрать говно!»

>> No.163119  
>> Вы бы это моему преподу по основам программирования сказали — сразу двойку получили, ибо нужно обязательно объявлять все переменные, как он говорил.
>Старпёр 60 лвл? Пусть откроет любой код на том же JS и посмотрит.

Щито? JS же напротив один из тех языков, где нужно быть предельно осторожным с объявлениями. Там аж даже 3 ключевых слова есть для объявления. Ну если конечно писать весь код в глобальном скоупе, то можно не париться. Только вот если писать всё в глобальном скоупе, то по сложности архитектуры дальше школьного калькулятора для домохозяек не уйдешь.

>> No.163126  

>>163119

>по сложности архитектуры дальше школьного калькулятора для домохозяек не уйдешь

И не надо. Я не понимаю, в какой больной фантации возникла идея использовать JS для чего-то большего, чем раскрытие менюшки в интернет-магазинах.

>> No.163128  

>>163126
Очевидно в какой-то момент где-то оказался избыток фронтендщиков при недостатке бекендщиков.

>> No.163133  

>>163126
Одно из следствия закона Мерфи гласит: если нечто полно по Тьюрингу, то обязательно найдутся:
1) больной ублюдок, который сделает на нем "Тетрис";
2) идиот, который напишет на нем всё остальное.

>> No.163134  

>>163118

> не понел
int a = 3;
foo(&a);
/* ... a is never used anymore */
bar(3); /* is equivalent */
>> No.163137  

>>163092
Авиаприборы. (Не совсем, там ADA, но похожая вещь)

>> No.163138  

>>163134
Лучше уж так
#define a 3

>> No.163139  

>>163134
То есть предлагаешь использовать магические числа?
Приходилось работать в группе больше трёх человек с проектом старше года? Если да, то ты должен знать, что в нем куча легаси кода, что написанный тобой код может быть скопирован много раз другими людьми, часть копированного кода может быть изменена, а потом внезапно может потребоваться поменять то самое число, которое использовалось один раз. Не говоря о том, что код тупо нечитабелен. В результате приходится тратить кучу времени на рефакторинг. А все из-за одного дебила, не умеющего думать наперёд, неправильно объявляющего и передающего переменные, использующего магические числа.
tldr читай википедию.

>> No.163140  

https://ru.m.wikipedia.org/wiki/Магическое_число_(программирование)

>> No.163143  

>>163126
То есть тебе не нужен например гугловский офис? Или ты знаешь, как реализовать его функционал без использования яваскрипта?

>> No.163145  
File: 1553074556213.gif -(1578 B, 52x22) Thumbnail displayed, click image for full size.
1578

>>163143

>То есть тебе не нужен например гугловский офис?

Так-то 80% веба не нужно.

>> No.163146  

>>163143
Знаю. Взять Qt и реализовать.

>> No.163149  

>>163146
Без использования браузера? А как же ональная модерация и 30% комиссии на смартфонах? А необходимость установки? А ещё qt на бабушкином утюге не работает. Не то, короче.

>> No.163154  
File: 1553095498920.jpg -(88826 B, 500x281) Thumbnail displayed, click image for full size.
88826

Какой язык лучше всего подходит для обучения программированию?

>> No.163155  

>>163154
На мой взгляд - python.

>> No.163163  

>>163154
Ассемблер MIPS.

>> No.163166  

>>163149
Гуглоофис на моем утюге тоже не работает.

>> No.163167  

>>163166
Но это не значит что он не работает на других утюгах.

>> No.163174  

>>163167
Он и на других утюгах не работает. Гугл с ходу предлагает приложение скачивать.

>> No.163177  

>>163174
Тогда проблемы, перечисленные в >>163149, не касаются Google Docs потому, что это продукция компании Google, а не потому, что создана на JS.

c:yudeish

>> No.163208  

>>163154
Зависит от того, чему именно хочешь научить. Информатика - тема обширная. Python хорош для того, чтобы в принципе понять, в чем заключается алгоритмизация, и быстро начать получать хоть какой-то результат.

>> No.163224  
File: 1553255528747.gif -(3776419 B, 1006x795) Thumbnail displayed, click image for full size.
3776419

>>163149
Для бабушкиных утюгов придумали J2ME, который работает одинаково вне зависимости от вендора интерпретатора, неплохо оптимизируется даже без оптимизаций уровня докторских диссертаций, позволяет пердолить канвас или кнопочки и поля GUI-тулкита, а не DOM самоверстающегося rich-text-документа (пикрелейтед), и перехватывает все действия пользователя и делает это очевидным образом, а не одну часть перехватывает, а на другую выбрасывает меню браузера или окно поиска, и позволяет общаться с системой и сетью напрямую, а не через три слоя абстракции по HTTP(s) с анальными ограничениями. Даже Android SDK, даже iOS SDK так позволяют делать.

>> No.163230  
File: 1553258116961.png -(42368 B, 1180x722) Thumbnail displayed, click image for full size.
42368

>>163154

Ничего лучше Паскаля для обучения программированию ещё не придумали (в современных обстоятельствах используется компилятор https://en.wikipedia.org/wiki/Free_Pascal и среда разработки https://en.wikipedia.org/wiki/Lazarus_%28IDE%29 с открытым и свободным исходным кодом).

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

Во-первых, это основной язык программирования сайтов WWW с 1995 года, извѣстный ≈всем браузерам к настоящему времени.

Во-вторых, после появления движка https://en.wikipedia.org/wiki/Node.js язык JavaScript с 2009 года завоёвывает себе мѣсто под солнцем и во внебраузерной среде в качестве средства создания вебсерверов (как https://expressjs.com/ например), шаблонизаторов (как http://handlebarsjs.com/ например), кросс-платформенных приложений (как https://electronjs.org/ или https://nwjs.io/ например), мобильных приложений (как https://cordova.apache.org/ или https://facebook.github.io/react-native/ например) и проч.

Вот почему язык JavaScript снискал неимоверную популярность.

Так, например, статистика GitHub по адресу https://octoverse.github.com/projects#languages в настоящее время гласит, что каждый год из пяти последних лѣтъ (2014, 2015, 2016, 2017, 2018) наиболее используемым языком у программистов, пользующихся Гитхабом (а ведь GitHub — это наиболее популярный хостинг открытого исходного кода), был JavaScript.

Для сравнения можно увидеть там же, что язык Java, рекомендованный в реплике >>163224, и язык Python, рекомендованный в реплике >>163155, занимают всего лишь второе и третье место в гитхабовском рейтинге употребимости их.

По адресу https://twitter.com/FidonetRunes/status/599249273948119040 я упоминал также, что считаю вполне справедливым сформулированный по адресу https://blog.codinghorror.com/the-principle-of-least-power/ Закон Этвуда: «any application that can be written in JavaScript, will eventually be written in JavaScript».

>> No.163232  

>>163230

> Ничего лучше Паскаля для обучения программированию ещё не придумали

Как там в 1995-ом?

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

> Во-первых, это основной язык программирования сайтов WWW

Сайты не программируют, а верстают. Когда их начинают программировать, получается https://www.youtube.com вместо https://invidio.us.

> https://en.wikipedia.org/wiki/Node.js

leftpad

> https://electronjs.org/

О, Господи!

> Закон Этвуда

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

>> No.163243  
File: 1553268936276.png -(780660 B, 593x598) Thumbnail displayed, click image for full size.
780660
> кроссплатформенных приложений … electronjs.org

Это не кросс-платформенное приложение. Это браузер.
Браузер.
БРАУЗЕР, БЛЯДЬ!!!
body.contentEditable = True, ВПЕРРРЁД!!! Ох, отрисовка мигающей каретки отъела 99.9% цпу, это же очевидно, как это решить

>> No.163245  

>>163243
Зато просто и кросплатформено.

>> No.163255  

>>163243
Ты ничего не докажешь, и не пробуй. Пускай жрут.

>> No.163258  
File: 1553278938467.png -(8128 B, 236x187) Thumbnail displayed, click image for full size.
8128

>>163245
Не просто. Попробовал как-то на Хаскеле сделать гуёвину и просто охуел от того, насколько всё просто и логично, а если не просто, то легко сделать простым. При этом работает сразу после компиляции (впрочем, успешная компиляция - это тот еще квест).

Дело не в простоте, а в наличии специалистов.

>> No.163260  

>>163258

>Попробовал как-то на Хаскеле сделать гуёвину

Win32?

>> No.163265  

>>163258
И на каких платформах она работала?

>> No.163270  
File: 1553281529913.jpg -(142953 B, 640x586) Thumbnail displayed, click image for full size.
142953

>>163232

> По той простой причине, что и тот, и другой позволяют сразу получить результат.

Ну дык ить и Паскаль также. Не вижу, чем «console.log» принципиально лучше «writeln».

>> No.163273  
File: 1553282413259.jpg -(34114 B, 700x415) Thumbnail displayed, click image for full size.
34114

>>163243

Википедия по адресу https://en.wikipedia.org/wiki/Electron_%28software_framework%29 в первом же абзаце сообщает нам, что Electron использован как движок для редактора Atom, для Visual Studio Code, даже для Discord.

Вы думаете, там дураки сидят?

Да и не занимает же отрисовка мигающей каретки ≈100% CPU никогда.

Быть такого не может.

Скорее бывает противоположное: https://ru.wikipedia.org/wiki/Десятое_правило_Гринспена становится всё более справедливым в той форме, которую оно принимает после замены слов «языка Common Lisp» словом «браузера».

>> No.163275  

>>163265
На всех, для которых есть GTK+, и в которые может компилить GHC.

>>163273

> Вы думаете, там дураки сидят?

Да.

>> No.163276  
File: 1553285917652.png -(1447 B, 120x105) Thumbnail displayed, click image for full size.
1447

>>163270
Какая, нахрен, консолька? Им графон подавай, да чтоб сразу как в Крузисе.

>> No.163278  

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

>> No.163279  

>>163273
Может. Можешь ещё таким забавным input lag поинтересоваться, с ним тоже порой очень весело всё.

>> No.163288  

>>163279

Почему я должен этим поинтересоваться, если onus probandi лежит на утверждающем?

«Пруфлинк или не было».

>> No.163290  

>>163278

Тогда уж не «полный движок джаваскрипта», а «полный движок браузера». А не то, например, файл https://nodejs.org/dist/v11.12.0/win-x64/node.exe занимает 26 234 520 байтов всего-навсего, и никаких там сотен мегабайтов.

>> No.163292  

>>163288
Потому что фанбойствуешь тут ты, а все остальные, кому JS глаза не залил, уже давно попробовали эти твои приложения "на електроне", охренели от их прожорливости и тормознутости и нашли аналоги.

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

>> No.163294  

Я не могу до конца понять, на чём основан этот выбор. Как такое могло произойти, что «программист на HTML» перестало быть шуткой — и почему у старухи-судьбы такая злая ирония.
Почему бы именно JS, когда полно других скриптовых языков и биндингов к GUI-библиотекам, а собрать их вместе с интерпретатором ничуть не сложнее? Это если о кроссплатформенности. Потому что было мало запихать хроме-движок в браузеры, теперь на нём нужно строить и настольные, и мобильные приложения? Или потому что эффективные менеджеры решили, что у пользователей слишком много лишних мегагерц, мегабайт и миллиампер, поэтому можно сэкономить на разработке — а тут как раз стадо дешёвых кодеров на NodeJS?
Других догадок у меня нет. Самый весомый мотив — наверное, экономический.
Они экономят на качестве, в таком случае. Коммерческие компании, вываливающие такое говно теряют всякое уважение к ним, как к производителям программного обеспечения. Если уважение к поставщикам проприетарных блотварных зондов вообще возможно.
Мой другой вопрос — зачем позиционировать и распространять, как десктопное приложение то, на что можно дать ссылку и открыть в своём браузере? А ещё, как там со взаимодействием через API операционной системы (уведомления, иконка в трее, нативный интерфейс)?

Если это тред про изучение программирования — вот пример того, как не надо.

>> No.163297  

>>163294
https://old.reddit.com/r/programming/comments/9go8ul/software_disenchantment/

>> No.163317  

>>163294

> зачем позиционировать и распространять, как десктопное приложение то, на что можно дать ссылку и открыть в своём браузере?

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

Вообще всё это началось в тот момент, когда кто-то подумал "я пишу на джаваскрипте и я думаю, что я крутой, но как бы мне притянуть разработку на js к разработке приложений на ос? о, придумал - просто возьму всё, что нужно, чтобы js исполнялся точно так же, как в браузере, но без браузера, и буду запускать окошко. А назову я это "электрон"!, чтобы все сразу поняли, как это модно, электронно и какое оно, в сущности, маленькое, всего полторы сотни мегабайт, да на моём макбуке оно устанавливается всего пару часов, это же некстген. А редактор я назову "Атом", ну вы поняли, атомы, электроны, типа там электрон, но и кроме него ещё что-то есть. Да я же ёбаный гений".

>> No.163332  
File: 1553387534442.png -(1026413 B, 1283x691) Thumbnail displayed, click image for full size.
1026413

>>163294
Вот есть у тебя в команде дизайнер, хороший дизайнер, который отвечает за дизайн твоего сайта, UI, UX, всю хуйню. Он умеет рисовать, верстать HTML, писать CSS и продуктивно сотрудничать c JS-разрабом. Приходит время, когда твоему сайту становится необходимо десктопное приложение. Ты хочешь, чтобы оно было выдержано в таком же стиле, как и твой основной сайт. Вы решаете писать на Qt. Но вот незадача: твой дизайнер теперь максимум, что может, так это рисовать макеты будущего интерфейса. Твой JS-разраб, с которым у дизайнера за многие годы работа была налажена на отлично, теперь вообще бесполезен. Крестовик, которого вы наняли специально для этого проекта, в Qt Designer наваял нечто, похожее на правду, но не совсем то, чего от него хотел дизайнер. Дизайнеру приходится учить Qt Designer, но добиться такого же внешнего вида, как и от веб-сайта всё равно не получается. А тебе хочется, чтобы было красиво, да и платить лишнему специалисту тоже не хочется. Вот бы было можно так, чтобы JS-разраб вместе с дизайнером могли пилить десктопные приложения... Добро пожаловать в наши дни.

>> No.163334  

>>163332

> дизайн
> дизайнера
> дизайн дизайнера

Матириал, изобретённый тем же гуглом. Уродливый, примитивный и неудобный, без искры, без мысли, без души — а как его зачастую используют авторы приложений, так он больше мешает, чем помогает управлять. И их много таких, чтущих заветы свыше.

> Приходит время, когда твоему сайту становится необходимо десктопное приложение

Приходит время, когда надо заставить пользователя открыть ещё один браузер, чтобы запустить то же веб-приложение, только в профиль.
Нужно больше браузеров! Куда бы засунуть ещё один гуглхром? Наверное, заместо ОС… WAIT OH SHI-- Chrome OS.

>> No.163335  
File: 1553397453380.jpg -(20539 B, 260x287) Thumbnail displayed, click image for full size.
20539

Пардон, хром — не браузер, конечно же.

>> No.163336  

>>163334

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

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

>> No.163337  

>>163317
>>163332
>>163334
>>163335
>>163336
Вы решили здесь повторить https://habr.com/en/post/423889/#comments ?

>> No.163344  

>>163337
Будто бы что-то плохое

>> No.163345  
File: 1553429823399.jpg -(124745 B, 811x700) Thumbnail displayed, click image for full size.
124745

>>163337
Опять эта статья?..

> Comments 2436

Нет, спасибо. Не будем повторять. Лучше вернёмся к изучению.

Поделюсь наблюдением.
Негде почитать про алгоритмы и прочую теорию на примере именно Си — мне такого чтива не попалось, по крайней мере.
Везде либо Питон, либо Паскаль (операторные скобки, бр-р).
Если такой литературы всё-таки нет — можно выкрутиться, освоив синтаксис и транслируя примеры из одного языка в другой, выполнять упражнения. А Паскаль с Питоном после Сишки и читаются, как псевдокод :3

>> No.163346  

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

>> No.163355  

>>163334
Из чистого интереса: как ты оцениваешь дизайн iOS 12?
>>163345
Именно на примере Си поищи книгу автора Kyle Loudon. Названия я не помню, точно что-то про структуры данных и алгоритмы.

>> No.163358  

>>163355
Негативно.
мимо

>> No.163381  

Просто оставлю это тут:
http://lib.ru/ANEKDOTY/non_pas.txt

>> No.168944  
File: 1570688347665.jpg -(37520 B, 670x670) Thumbnail displayed, click image for full size.
37520

Я тут слегка упоролся по низкоуровневой магии. Вот, где настоящая власть — столько, сколько её дают производители процессоров, по крайней мере.

>> No.168945  

Вот, что на самом деле выполняется машиной. На примере бинарника с хелловорлдом.
Слева - опкоды (коды операций); справа — соответствующие им ассемблерные инструкции.

$ objdump -M intel -d  hello
Disassembly of section .text:
0000000000400078 <.text>:
400078: 48 c7 c0 01 00 00 00 mov rax,0x1
40007f: 48 c7 c7 01 00 00 00 mov rdi,0x1
400086: 48 c7 c6 a6 00 40 00 mov rsi,0x4000a6
40008d: 48 c7 c2 0d 00 00 00 mov rdx,0xd
400094: 0f 05 syscall
400096: 48 c7 c0 3c 00 00 00 mov rax,0x3c
40009d: 48 c7 c7 00 00 00 00 mov rdi,0x0
4000a4: 0f 05 syscall

Раз написано «syscall» — значит, системный вызов. Его выполняет ядро.
В мануале syscall(2) есть таблица о соглашениях вызовов: для x86-64 номер сисколла содержится в RAX, вызов происходит по инструкции «syscall».
Ага, пока всё сходится.
Соответствия номеров и имён сисколлов — например, в исходниках, в файле syscall_64.tbl.
https://github.com/torvalds/linux/blob/master/arch/x86/entry/syscalls/syscall_64.tbl
Здесь это 1, write.

«man 2 write» сообщает: ssize_t write(int fd, const void *buf, size_t count);
Итак, номер передаётся в регистре RAX, и аргументы (вроде как у функции), в регистрах: RDI, RSI, RDX:
• RDI: «int fd» - файловый дескриптор - 1, stdout;
• RSI: «const void *buf» — адрес строки для вывода — 0x4000a6;
• RDX: «size_t count» — и её длина - 0xd, 13 байтов.
Возвращённое значение беззнакового типа кладётся в тот же RAX.

Ну, а строка… Видно, что она где-то дальше кода, сразу после него. Раз уж известен её адрес:

$ objdump -s --start-address=0x4000a6  hello

Соответствия опкодов и инструкций отображены в таблицах типа такой.
http://sparksandflames.com/files/x86InstructionChart.html

>> No.168946  

>>168945
Не всё до конца понятно и остаются следующие вопросы.

1) Видно, что C7 — это «MOV». Почему (и зачем) перед каждым MOV в выводе objdump есть 48?

2) Почему после «c7 c0» — значение длиной 4 байта, «01 00 00 00», если RAX размером 8 байт?

48 c7 c0 01 00 00 00 →  mov    rax,0x1

3) Продолжая мысль, можно делать то же самое, используя лишь младшие части регистров.
0000000000400078 <.text>:

400078:	b0 01                	mov    al,0x1
40007a: 66 bf 01 00 mov di,0x1
40007e: be 8e 00 40 00 mov esi,0x40008e
400083: b2 0d mov dl,0xd
400085: 0f 05 syscall
400087: b0 3c mov al,0x3c
400089: 66 31 ff xor di,di
40008c: 0f 05 syscall

Машинного кода поменьше. И что, так лучше, что ли?

>> No.168948  
File: 1570691277649.jpg -(109081 B, 800x700) Thumbnail displayed, click image for full size.
109081

>>168946
48 перед c7 задает размер операнда, если верить http://ref.x86asm.net/coder64.html . Отсюда и 4 байта вместо восьми.

> можно делать то же самое, используя лишь младшие части регистров

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

>> No.169048  

>>168948

> Ты верхнюю часть rax никак не задал, там может остаться мусор после предыдущих инструкций.

Может — но так как это первая инструкция, в регистрах ещё ничего нет. Не опасно.
При этом:

mov rax, _8 байт_
mov eax, _4 байта_

Старшие биты обнуляются при операциях с EAX. В остальных случаях — нет.

> 48 перед c7 задает размер операнда

Да, в 64-битном режиме это REX-префикс, означает размер операнда в 64 бита. В коде всё равно 4 байта, это странно. Два подряд «C7 C7» для MOV тоже не добавляют ясности.
В общем, не так всё очевидно, а жаль. На таком низком уровне наоборот ожидаешь предельной точности и однозначности.

>> No.169055  

>>169048
В шестнадцатиричном виде код тоже зависит от контекста.

>> No.169060  
File: 1571070744098.jpg -(186434 B, 480x640) Thumbnail displayed, click image for full size.
186434

>>169048

> но так как это первая инструкция, в регистрах ещё ничего нет. Не опасно.

Опасно на такое полагаться.

> Два подряд «C7 C7» для MOV тоже не добавляют ясности.

Второй C7 уже является операндом, кодирующим rdi

> На таком низком уровне наоборот ожидаешь предельной точности и однозначности.

Архитектуре почти полвека и за это время туда понатыкали просто немыслимое количество костылей.

>> No.169079  

Госпаде, какой хейт ЖС и электрона выше. Алсо, не понимаю почему кому-то неясно зачем пилить приложение на электроне. Вы не поверите, господа, но чтоб юзать API вашей ОС. Вот так открытие я сча сделал, да?

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

Тащемта, про жор памяти, приложуха на электроне, то есть инстанс хрома ест 100-200 мб, фактически это копейки даже когда у тебя 8гб памяти. У меня 8гб памяти и я куда больше горел от того что сраный Webstorm жрет все что видит, в итоге все вываливается в своп-раздел, а он на хдд... Вместо докупания памяти и ссд я пересел на емакс, лол.

>> No.169082  

>>169079

> Платят - значит делаю всё правильно.

А ещё кому-то платят за навязчивую рекламу и сбор телеметрии. Они тоже всё делают правильно.
Электрон - это очень громоздкое решение, а для обращений к АПИ ОС достаточно простой обёртки на Си или другом языке, которая весит на порядки меньше.
Зато приложения на Электроне глючат даже на нормальных компах (нормальный комп - 16 гб оперативы и и7). Потому что не надо использовать скриптовый сценарный язык без чётко определённой парадигмы, выросший из мигающих кнопок на веб-страницах, для написания приложений и веб-серверов, ну не понимают люди, что они пластмассовой картофелечисткой гвозди забивают.

>> No.169083  

>>169079

>Алсо, не понимаю почему кому-то неясно зачем пилить приложение на электроне. Вы не поверите, господа, но чтоб юзать API вашей ОС.

У тебя в последнем предложении "Программистов на ЖС жопой жуй и можно не платить много за них" много ошибок.

>> No.175229  
File: 1588444340586.png -(436967 B, 510x825) Thumbnail displayed, click image for full size.
436967

>>169079

> но чтоб юзать API вашей ОС

Это даже на Visual Basic можно, но с меньшей прожорливостью. Нет, выбор "Электрона" вполне оправдан, если целью стоит написать приложение, которое вело бы себя как браузер в некотором роде (клиенты для всяких интернет-сервисов), но зачем они нужны простым приложениям вроде текстовых редакторов (привет, "Атом"!) — непонятно.

> то есть инстанс хрома ест 100-200 мб, фактически это копейки даже когда у тебя 8гб памяти

Напомню, что минимальные требования к ОЗУ у Windows Xp — 128 МБайт… Вот из-за таких программистов, как вы, и имеем сейчас прожорливые приложения, по функционалу не всегда лучше старых. Зато "вау-эффекты" есть.

>>169083
Новерьчую.

>> No.175231  
File: 1588445304074.jpg -(105663 B, 1280x720) Thumbnail displayed, click image for full size.
105663

>>175229

> Напомню, что минимальные требования к ОЗУ у Windows Xp — 128 МБайт…

А windows 95 могла обходится четырьмя.

>> No.175235  
File: 1588469345575.png -(3234586 B, 1920x2312) Thumbnail displayed, click image for full size.
3234586

>>175231

> Cretae
>> No.175238  
File: 1588488851971.jpg -(540428 B, 900x1181) Thumbnail displayed, click image for full size.
540428

>>175231
Но она по функционалу сильно уступала современным ОС, тогда как Win 10, 8 и 7 — суть переделанная "Виста". Просто фантики разные.

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

>> No.175240  

>>175238
И что же такого сильно функционального есть в xp чего нету в 95?

>> No.175241  
File: 1588501812222.jpg -(658599 B, 950x641) Thumbnail displayed, click image for full size.
658599

>>175240
В Win Xp есть поддержка NTFS, много встроенных драйверов, а также различные сетевые службы.

В целом, да. Современное ПО может по функционалу не сильно от старого отличаться, но потреблять ресурсов намного больше. Программисты оправдываются тем, что современные компьютеры всё равно мощные. Но отсюда получается, что для простого пользователя рост производительности компьютеров не заметен, поскольку вместе с ним и увеличиваются требования приложений к ресурсам. Разница заметна при выполнении ресурсоёмких задач вроде 3D-моделирования, архивации, обработки видео и прочего. Ну и в играх, конечно.

>> No.175243  

>>175241

> поддержка NTFS

https://xakep.ru/2002/10/22/16637/

>> No.175267  
File: 1588548714279.jpg -(70605 B, 850x478) Thumbnail displayed, click image for full size.
70605

>>175243
Хорошо, а как вы в этом случае относитесь к React OS?

>> No.175274  

>>175240
Ты, видимо, давно не сидел за Win95, раз забыл разницу между нею и XP.

В Win95 многозадачность была формальной, а BSOD любой юзер видел чаще скринсейвера, лол. Видео стронгли релейтед: https://www.youtube.com/watch?v=IW7Rqwwth84

В то время даже анекдот ходил:
Сидит Билл Гейтс за компьютером. Подходит сынишка:
-Пап, а правда, что твой Windows 95-ый — многозадачный?
-Правда, сынок.
-А покажи, как эта многозадачность работает?!
-Сейчас, погоди, дискету доформатирую...

Я это к тому, что в Win95 даже на самой топовой машине ты бы не смог скроллить web-BBS в Netscape с несколькими вкладками, одновременно ваять что-то в Фотошопе, чатиться в ICQ, при этом чтобы фоном играла музыка в WinAmp. Потому что тупо на DOS, со всеми его ограничениями, натянули GUI. Вот с выходом Win 2k нормальная многозадачная работа уже стала возможной, и между ней и условной Win7 действительно разница не столь ощутима.

>> No.175277  

>>175274

> В Win95 многозадачность была формальной

Там были свои приколы с использованием железа (тот же дисковод), но в целом многозадачность вполне себе работала.

> а BSOD любой юзер видел чаще скринсейвера, лол

Это ты уже с 98й путаешь.

> Я это к тому, что в Win95 даже на самой топовой машине ты бы не смог скроллить web-BBS в Netscape с несколькими вкладками, одновременно ваять что-то в Фотошопе, чатиться в ICQ, при этом чтобы фоном играла музыка в WinAmp

Ты не поверишь, но такой кейс вполне себе работал.



Delete Post []
Password

[/b/] [/d/] [/tu/] [/a/] [/ph/] [/wa/] [/cg/] [/t/] [/p/]