Учим английский самостоятельно
3 поста
3 поста
Про управление памятью в С и высокоуровневых языках.
Ребята я очень люблю С, больше половины времени, за всю свою карьеру программирования программировал (и до сих пор да) на нём.
Но не надо притворяться, что проблем нет там, где они есть.
Если вы очень хорошо научились заниматься любовью стоя и в гамаке - это значит что вы лично умеете терпеть эти неудобства за приемлемую "цену", но ребята кровать всё равно лучше.
WADS: На Python \ Java \ Haskell писать всё рано быстрее.
dikPauk: При условии, что можно использовать какие угодно фреймворки - разницы будет никакой в скорости написания, при условии, что ты хорошо знаешь Си.
WADS: Ну просто реализовать руками всю ту машинерию, что Python делает под капотом (банально управление памятью, OffsetOf, отсутстиве дженериков, отсутствие синтаксического сахара....
dikPauk: Управление памятью не такая большая проблема, как может показаться. Я бы назвал это вопросом привычки, чем больше пишешь на языке, тем больше имеешь своих шаблонов, заготовок, и прочее, которые лежат где-то посередине между библиотекой и нативом.
Тут вы лукавите, выдавая идеальный случай за общий. Вот что в реальности получается с управлением памятью (от простого к сложному):
0. Программка для лабораторки:
написал, забыл. Но это не ПО, это программка.
1.
Даже в простейшем случае вы пишите что-то типа такого:
//my_module.cpp: преобразуем массив из arr1 в arr2
struct my_type arr2[] = calloc(arr_size, sizeof(*arr2));
for (int i = 0; i < arr_size; ++i)
func(&arr1[i], &arr2[i]); /* в С move-semantic ещё не завезли
* а оптимизировать доступ к памяти (читай кэши) хочется
* мы же крутые C-шники, а не какие-то там питонисты-хаскелисты */
free(arr1);
arr1 = NULL;
Вместо такого:
-- my_module.hs : преобразуем массив из arr1 в arr2
let arr2 = map func arr1
2.
В случае совсем немного сложнее вам вдобавок, нужно 100500 правил, типа:
- Всегда проверяем входные параметры на NULL
- За выделение памяти всегда отвечает вызываемая функция
- За очистку памяти (и выставление в NULL указателя) всегда отвечает вызывающая функция.
Плюс санитайзер и линтер.
И да свой набор правил вы создали и запомнили хорошо, но открывающий вашу программу о нём слыши в первый раз и ему нужно пару недель, чтобы к нему приноровится:
- 20 минут прочитать;
- 2 часа боле-менее освоиться;
- 2 недели в дебагере, чтобы не забывать во всяких мелочах.
3.
Довольно грустный случай.
Вы видите как "удобно писать программу", но это потребует очень много сопутствующей машинерии.
Поэтому вы реализовывать свой проект не правильным, с точки зрения архитектуры образом, а так, чтобы с памятью не очень много возиться. Т.е. вы портите саму программу, чтобы прилагать усилий, как в "варианте-2", а не как в "варианте-4".
4.
Ну и когда некоторая "интегральная сложность программы" преодолевает какой-то рубеж (такие "хорошо циклические структуры данных" типа IR в компиляторах, могу рассказать), у вас реально больше половины интеллектуальных усилий (включая "думание", а не просто набивание строчек кода) уходит на поддержку С того, что в высокоуровневых языках идёт из коробки.
По итогу вы вкорячиваете в свою программу половину GC (оптимизированную под ваш случай), половину валгринда, половину thread-sanitizer, обмазываетесь модулями для асинхронного выполнения кода....
Ой пальчиком погрозил.
И диаспоры так и побежали выполнять (спойлер: нет не побежали, сейчас диаспора - это игра в одни ворота "уважайте наши традиции").
Вот действенный метод: каждый раз, когда происходит правонарушение с участием мигрантов назначается две следственные бригады:
- первая: по расследованию правонарушения.
- вторая: по контролю законности бизнеса и собираемости налогов руководителями диаспоры (зависит от национальности правонарушителей).
Вот тогда у диаспоры будет экономический стимул не только "своих защищать", но и "следить за нормальным поведением".
Не могу не поделиться, когда благородный рыцарь-таксист бастует против аггрегаторов за моё счастье, а у меня интернет отключили.
#comment_212152158
Опять подняли на пикабу знаменитый холивар: "жадные бизнесмены - ленивые работники".
А знаете что самое грустное - это именно то, что делает нас беднее. Не их в отдельности "жадных бизнесменов" и "ленивых работников", а нас всех как страну и её народ.
Именно вот это недоверие, ожидание что тебя наебут и делание всё, чтобы нае..ть в ответ. Ведь если у нас ЗП уже сравнимы с ЗП в Китае (в перессчёте на час зарплаты примерно одинаковые) почему наша одижда стоит дороже?
Ведь что такое "богатство страны"? Это просто все произведённые в стране блага поделённые на всех её жителей (часть благ мы обменяли на заграничные товары - но их ценность осталась прежней).
И на этом фоне на первый план выходит... как бы это лучше выразить личное нежелание развиваться и работать на перспективу "чтобы вдруг дяде не сделать лучше".
- Водитель (из условного "Погрузовичкова") сидящий в кабине пока грузчики носят - ау ребята, я заплатил вам 10к за переезд, мне всё равно делить это на 2 или 3 человека, но работа которую в США сделают два человека у нас сделают три из-за .... ХЗ чего, это даже "рабочей гордостью не назовёшь".
- Предприниматель, который не отправляет своих работников на обучение "а вдруг сертификат получат и им надо будет больше платить?" - ты дурак. Ты работнику заплатишь +10тыр, а он тебе принесёт +20тыр
- Эффективный менеджер, у которого "подчинённый не может получать больше начальника" - в IT почему-то может, а у "эффективного менеджера" никак.
- Швея (раз уж это ответ на пост), которая не пойдёт выучиться (да по вечерам и субботам) дизайну\раскройке чтобы начать выполнять полный цикл работ и получать не 40-60к, а 140 за ту же работу.
В общем не знаю как это сказать - теория игр нас учит (в том числе на соревновании "экономических программ") для того, чтобы стать богатым надо не быть жадным.
Ребята доверяйте друг, другу, развивайтесь и не будьте жадными - это сделает богаче вас, и всех нас как общество - потому, что нет у нас с вами другого общества кроме того, которое состоит из миллионов отдельных индивидуумов.
Всем удачи, успехов, хорошей работы и котиков ;)
Онлайн-университет Skypro от Skyeng предложил бесплатно освоить ИТ-профессию и помочь в трудоустройстве.
В обмен студенты должны будут в течение двух лет выплачивать по 17% от зарплаты свыше 50 тысяч рублей в месяц.
Также хочется отметить, что на западе так уже делают. Та же Lambda School - просит % от ЗП выше 50 000 $ / год.
Вот пост от человека, "старой закалки" (может человек и довольно молодой, но рассуждает как мои родители из тепличных времён СССР).
В смысле человек работает с понедельника по субботу, зарабатываю 60. Работал бы меньше зарабатывал бы 30 (но он-то 60 зарабатывает). Всё плохо.
А чего нет в посте? Нет того, что он делает, где результат его работы. Какую реальную проблему заказчика он решает (или какую роль в решении реальной проблемы заказчика он играет).
У меня вот что есть сказать по этому поводу.
Люди, которые "реально решают твою проблему под ключ" зарабатывают очень хорошо. Только для этого надо не "работать 8 часов в соответствии с должностными обязанностями", а "вот тебе надо, сделаю от начала и до конца, стоить будет столько".
Вот примерные оценки кто сколько зарабатывает (кто-то сам говорил, о ком-то прикидывал):
оконщики: 200-300 тыс\месяц.
дверники: 150-250 тыс\месяц.
потолочники: 150-200 тыс\месяц.
доставщики (он ИП, сам аггрегирует заказы, сам доставляет): 150 тыс \ месяц.
отделочники: 160тыс (400 тыс за 2.5 месяца).
Мораль оставлю на усмотрение читателей.
До пикабу добралась мода обвинять родителей в своих неудачах.
Один из самых запомнившихся комментов был таким: "рассказал я (что-то) родителям, отец не поверил, пошёл перепроверять и с тех пор нет доверия к родителям".
Я очень серьёзно воспринял этот примеряя на себя то, каких ошибок следует избежать, - всё-таки дочь растёт и растерять уважение ребёнка действительно болезненно.
И вот у дочери (2.5 года) неделю назад начался период "это я \ это моё".
Рисуют с мамой картину - дочь приходит и говорит : "это я нарисовала", "может быть вместе с мамой?", "нет я".
Видит телефон на тумбочке подбегает хватает говорит : "я первый взяла это моё".
Ну и так далее (на улице до конфликтов с другими детьми пока не доходило).
Да замечу сразу - этот период вполне нормальный во взрослении ребёнка. Он осваивает новые понятия (моё \ мамино \ папино) а также как язык соотносится с реальностью.
И до кучи "врать правильно" (ну это лет с 5) - это очень сложный социальный конструкт. Фактически надо "сесть в шкуру другого человека", смоделировать желаемое поведение у себя в голове и рассказать об этом.
Так вот я отвлёкся. После того, как дочь начала говорит "это моё" - моё отношение к тому старому комменту (отец не поверил) и новым с жалобами на детство резко изменилось.
Когда я вижу такие комменты у меня возникают такие ассоциации:
Во-первых у родителей могут быть незаметные детям причины почему надо перепроверить (ребёнок в таком возрасте, что.... за ним было замечено, что.... - одни из самых банальных).
Во-вторых почему? Почему ты до сих пор ищешь на кого свалить вину за твою неспособность построить свою жизнь? Почему ты не готов сам отвечать за свои провалы и победы?
Ну и в третьих зачем? Зачем ты говоришь об этом чужим людям? Наверное потому, что ты до сих пор не простил своих родителей, из-за, в большинстве случаев, каких-то не стоящих внимания мелочей.
ПС
Картинка для привлечения внимания - новый коммент, стриггеревший меня написать этот пост.
Интересно пишет строитель:
1. Цены на выборочные материалы поднялись на 20-45% (материалы, на которые цены не выросли он не писал).
2. Стройка, по его словам, подорожала в 1.5-2 раза.
Внимание вопрос:
Кто те гниды (которых забыл указать строитель), которые вместо 30% делают стройку дороже вдвое?
Отвечает Александр Друзь....