TGViewer
Сіпласпластик Сіпласпластик @cpplastic · 739 subscribers
Post #359 612
Ну шо сказати. Втомився я трохи. Мало того, що відстав майже на тиждень (зараз лише 2,5 дні наздогнати) і що пишу щоразу новими для себе мовами, так і дописи, як оцей, займають багацько часу. Але хто, якщо не я?! )

Отже 12-й день розвʼязував на Dart 💻. Хотів глянути на мову, бо існує Flutter 💻: як би я не любив QML, є ненульовий шанс, що рано чи пізно він накриється, тож треба дивитися альтернативи.

Підсумок такий: Dart — це JavaScript, яким він мав бути. І ні, не тому, що JS поганий, а цей класний, а тому, що тоді б принаймні назва була виправдана. Бо від Dart дуже стійке відчуття, наче пишеш на Java з дрібними домішками інших мов того ж типу.

І це якось мене бентежить. Типу, сідаєш такий пописати на релаксі, а воно тобі хуяк по обличчю оцим своїм синтаксисом. Ну, типу, якби я хотів постраждати, то я б, мабуть, одразу взяв нормальну мову, яка компілюється не в JS, м? Хз, короч.

Ну, принаймні дженеріки є та навіть Set у стандартній лібі, а не як в Go — гугл перевершив себе цього разу. Ось рандомні шматки коду, щоб ви трохи відчули синтаксис:
int discount_cost() {
return area * edges().length;
}

Set<Edge> edges() {
Edge? findEdge(Point point, Side side) {
const check = {
Side.Above: Point(0, -1),
Side.Below: Point(0, 1),
Side.Left: Point(-1, 0),
Side.Right: Point(1, 0),
};
// ...

@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
if (other is! Point) return false;
return row == other.row && col == other.col;
}

@override
String toString() => '$start -> $end ($direction)';

Matrix<bool> visited =
Matrix(List.generate(rows, (_) => List.generate(cols, (_) => false)));

Ну ви зрозуміли.

З приємного: доволі якісний тулінг, зокрема плагін для vscode. Працює швидко й ніби безпроблемно.

Сама по собі мова не складна й доволі непогано структурована. Як нині модно, є константи компіляції (const), рантайм-константи (final) та змінні (var). Є інтерполяція рядків, nullable-типи, скорочений синтаксис для методів (через =>), ну й усяке таке. Є якийсь свій прикол для тредів, який вони назвали ізолятами (isolates), але мені не довелося використати.

З цікавого: підтримка hot reload, утім хз, чи це фіча мови, чи чисто Flutter. Так чи інакше таке нескладно зробити, коли транслюєшся в JavaScript.

Та попри все це мова якась неприємна мені. Якась суха й без життя. В ентерпрайзах на такій писати якраз норм, мабуть. Як-он Toyota з їхньою infotaintment-системою. Але я за можливості уникатиму.

Чи то мене просто гугл аж настільки дратує?
  • 👍 7
  • ❤ 1
  • 👀 1
More from @cpplastic
  1. Oct 7, 2026Post #543
  2. Oct 2, 2026Щось не злетіло з self-driving cars у автовиробників, еге ж? А стільки галасу було. Ну зат…
  3. Sep 24, 2026Ух, яку ж класну доповідь подивився: «Scott Jenson: Are we really going to use the same De…
  4. Sep 23, 2026Post #540
  5. Sep 21, 2026«Порекламую» вам український сайт, який мені дуже подобається. Взяв слово в лапки, бо як і…
  6. Sep 18, 2026Ви ж знаєте, що я полюбляю Tailscale 💠 попри те, що недоліків у них теж вистачає? Але сам…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →