Pull to refresh
17
0.5

User

Send message

Благодарю за ссылку, с интересом ознакомлюсь.

Сложность: поскольку одной из целей создания языка было упростить Java, синтаксис Kotlin — интуитивно понятный и лаконичный.

Пример структуры кода Kotlin
Пример структуры кода Kotlin

Может быть, перед тем как Вы (или ИИ) будете кому-то что то советовать, соблаговолите хотя бы, так, чисто для интереса, посмотреть как выглядит языки которые советуете.
Подскажу, это не Kotlin, это байткод JVM.

За последние лет 10 только ленивый не написал про волшебные чистые функции которые позволяют писать код без багов. Может быть все-таки сменить пластинку написать уже как это все будет выглядеть в реальном мире где на каждом шаге IO и во что эта красота чаще всего превращается?

"Безопасность работает так же как и прежде" - как безопасность может работать как и прежде, если можно свободно обращаться по любым указателям без никаких проверок, а доступ к полям union это самый настоящий reinterpret_cast? Поясните пожалуйста.

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

Кстти еще существует такая штука как unsafe{}. Она отключает всю безопасность и позволяет управлять памятью как тебе угодно. 

Это не вполне корректное утверждение.unsafe{} ничего не отключает а скорей наоборот включает внутри области возможность работать с небезопасными операциями: разыменование сырого указателя, вызов небезопасных функций, модификация статической переменной, доступ к полям union. Безопасность работает так же как и прежде, просто внутри области видимости программист берет на себя отвественность за возможное возникновение неопределенного поведения для вышеуказанных операций.

В целом посыл правильный но выводы - нет.

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

Мы часто воспринимаем слово senior как награду за выслугу лет. Но индустрия давно перестала повышать "по времени". Сегодня техническая сила — лишь половина пути. Вторая половина — это способность быть взрослым инженером: понимать контекст, предвидеть, спорить грамотно, а не громко.

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

Задумывались ли вы, почему порой продвигают не самого "умного", а самого “понятного”?

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

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

Чем отличается хорошее System Design интервью от плохого, коротко.

Хорошее

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

Плохое

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

кто-то кайфовать, что смог попасть в тройку

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

Если у человека плохая генетика, это ставит крест на его желании заниматься спортом?

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

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

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

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

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

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

Нет. Главное понять что нравиться и что получается. Человек может быть например никакущим разработчиком но при этом может стать талантливым руководителем. Вместо того чтобы человек занялся тем что у него будет получаться, от чего он будет получать удовольствие и быстро расти, Вы советуете человеку упереться рогом в то что совсем не получается, то что не его вообще, создавать проблемы окружающим, страдать из-за этого и иметь никакой КПД. Отличный совет, ничего не скажешь.

Никакого результата в жизни вам никто и никогда не гарантирует.

Ждем следующую статью про то как генетика и здоровье не влияют на достижение в спорте.

Да что угодно, большинство web приложений, мессенджеры, фреймворки типа spring, IntelijIdea, Продолжать можно долго.

Языкам программирования на развитие требуется некоторое время. 15 лет назад Python был эдаким языком энтузиастов. 10 лет назад он зашевелился, а сегодня Google имеет принцип: "Python там, где это возможно, C++ там, где вынуждены."

Может быть Вы немного проспали но Google вместо "Python там, где это возможно, C++ там, где вынуждены." давно создали себе целый язык Go потому что видимо это не очень работала история c преисполнившимся за 15 лет Python.

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

Да я не спорю языки программирования эволюционируют потихоньку. Но по факту то что Вы описываете вывозит не их эволюция а эволюция железа и эволюция компаний по умению впаривать плохой софт.

Вы так описываете как будто ничего не поменялось и там где раньше нужны были знания и умения, сейчас все по волшебству само хорошо работает. Не работает. С каждым годом софт становиться все хуже и хуже. Эти проблемы закрывают в основном производители железа. Компаниям и пользователям все больше и больше приходиться платить из своего кошелька за все большую криворукость разработчиков. Нужно каждые n лет менять железо чтобы запустить банальный "калькулятор" или текстовый редактор. Компании это устраивает, у людей нет выбора.

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

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

Судя по тому что статья 2014 года, то сыр не просто бесплатный но еще и протухший.

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

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

Go делали не для масс а для себя и своих задач. Никаких масс изначально не было. Кому он должен был заходить, джавистам или дотнетчикам или питонистам? С какого перепуга? Изначально язык активно хаяли за примитивность. В массы он пошел после того как компании начали активно у себя продвигать и появились вакансии и появились те самые массы.

Думаю это хороший подарок для тех кто обучают языку Java других людей. Объяснять новичку что это за class Main public static void main немного затруднительно, ведь в процессе обучения до классов и методов доходят далеко не сразу.

Чуть позже очень удобно будет объяснять новичку:

// публичный статический метод
void main() {  
    System.out.println("Hello world");
}
// приватный пакетный нестатический метод
void hello() {  
    System.out.println("Hello world");
}
// снова публичный статический метод
public static void hello() {  
    System.out.println("Hello world");
}

На месте новичка, с взорванным мозгом ,у меня была бы только одна мысль:
какой идиот это придумал, почему нельзя было сделать все в одном стиле?

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

Придерживаюсь аналогичного мнения.

Еще одна вещь, которая, как мне кажется, препятствует "широкому принятию Rust" - это вайб "вы все больные и не лечитесь, а у нас Rust!"

Да не. Я Вам умоляю. Все такие. Зайдите в компанию джавистов и скажите просто что Java даже не то что плоха а хотя бы несовершенна. С высокой вероятностью ответом будет истерика и рассказы про то что в JVM волшебные оптимизации и Java давно быстрее C и C++ и вообще это самый лучший и совершенный язык. Или можно зайти к функциональщикам и что-нибудь интересное сказать. И я не утрирую честное слово, после нескольких таких раз я понял что нет в rust разрабах ничего особенного в этом плане по сравнению с другими стеками.

А Go массам зашел, причем без явных принудиловок.

А вот с Rust загадка дыры, куча хвалебной информации, мол можно реализовывать проекты от embedded до чего угодно, но прям по крупному его как будто бы не используют.

Вроде как язык для всего, а нишы для него нет

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

Rust - это во-первых не язык для всего. Можно конечно на нем написать что угодно но не очень нужно. Это язык конкурент C++ в куда более узкой нише высокопроизводительных вычислений и тонкой работы с памятью. Поэтому естественно востребованность не будет ни в какое сравнение с написанием вэб серверов. Во-вторых, это сложный язык на который нужно потратить время и силы. Классика вакансий мало - разработчиков мало, разработчиков мало - вакансий мало.

Звучит красиво. Но как говорится, есть нюанс.

Судя по описанию, PHP героически пытается догнать то что в других языках или из коробки или уже было 10 и более лет назад. Вопрос, почему мне должен быть интересен догоняющий язык больше чем языки которые он догоняет? Чем интересен должен быть язык в который вливаются огромные труды только для того чтобы он мог постоять рядом с языками которые таких проблем и не имели?

Сила и киллер-фича, которая сделала PHP мега популярным, была в его простоте. Вместо того чтобы исправлять проблемы и развивать язык в данной направлении, вкладывается очень много сил просто чтобы сделать another one догоняющий язык.

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

1
23 ...

Information

Rating
1,980-th
Location
Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Backend Developer
Lead
C#
Java
Rust
Golang
Multiple thread
C
System Programming
Game Development
Unity3d
Algorithms and data structures