LINUX.ORG.RU
ФорумTalks

Смузи

 


0

3

Когда это закончится? Модное, новое, молодежное? Я не успел от раста отойт и сразу появляется какой-то неведомый зиг - ватафак? Кто, ну кто этот неймер (по совмпстительству - цифролингвист), почему он так любит насилие над людьми, на пенсионерами, которые не хотят москвич 2023 а хотят добрый 412-ый?

Ответ на: комментарий от ox55ff

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

skidphysic
() автор топика
Последнее исправление: skidphysic (всего исправлений: 2)
Ответ на: комментарий от skidphysic

В общем, я за си и кресты, а не вот это вот, молодежное.

Ну так-то си и кресты являются молодёжным смузихлёбством по сравнению с Коболом, не говоря уже про Assembler...

QsUPt7S ★★
()
Последнее исправление: QsUPt7S (всего исправлений: 1)
Ответ на: комментарий от QsUPt7S

по сравнению с Коболом, не говоря уже про Assembler

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

skidphysic
() автор топика

Пусть расцветают сто цветов, пусть соперничают сто школ.

Zig весьма интересный инструмент. Особенно его кросс-компилятор, который используется даже вне этого языка.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

«Питон обошёл по популярности SQL»… В топку такие рейтинги и отчёты.

seiken ★★★★★
()
Ответ на: комментарий от skidphysic

У С++ есть фатальный недостаток - его придумали не они

PPP328 ★★★★★
()
Ответ на: комментарий от skidphysic

Зачем выдумывать расты, зиги итп?

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

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

Zig - насколько я смог понять из описания, нацелен на то чтобы быть более простым и безопасным чем C, путём замены старых костылей из C, их более современными аналогами.

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

В свою очередь кресты - это впендюривание модной тогда темы нетрадиционной объектной ориентированности в уже широко используемую сишечку.

Таким образом можно считать и Rust, и Zig последователями тех же начинаний «улучшайзинга», коими являются сами C и C++.

QsUPt7S ★★
()

Поддержка пяти языков,
С MIT лицензией файл,
И если один скажет Zig,
Миллионы ответят «compile!»

Smacker ★★★★★
()

А может у него того, ни рантайма ни репы? Да не, бред какой-то

DumLemming ★★★
()

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

Некоторые вещи в нём выглядят приятно, а некоторые вырвиглазно.

alman ★★★
()

и сразу появляется какой-то неведомый зиг - ватафак?

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

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

А раст решил все ломать об колено (совместимость, простоту и т.д.) что было его фатальной ошибкой.

З.Ы: на зиге не пишу, пока что больше предпочитаю православную сишку. Но с интересом слежу за развитием.

iron ★★★★★
()
Ответ на: комментарий от QsUPt7S

управление памятью

Это конечно полемика, но допустим, чем (с такой целью) не устроила ява? Сишарп так и быть, проприетарный.

skidphysic
() автор топика
Ответ на: комментарий от iron

зиг имеет огромное преимущество

Еще бы, я уже готовлю смузи и уши для лагмана.

skidphysic
() автор топика
Ответ на: комментарий от iron

да, он в некоторых местах не фонтан

Надо же, значит нужно создать еще один зигфонтан.

skidphysic
() автор топика
Ответ на: комментарий от iron

в будущем может все поменяться в лучшую сторону

Просто поржу :)

skidphysic
() автор топика
Ответ на: комментарий от ox55ff

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

amd_amd ★★★★★
()
Ответ на: комментарий от EXL

Это не цветы, а говно какое-то.

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

Это именно что смузихлебство. Модное молодежное, и вот это всё. Типа новые кроссовки.

lovesan ★★★
()

никогда, примерно потому же почему люди не хотят ходить в лаптях и освещаться лучиной

zurg
()
Ответ на: комментарий от zurg

языки типа Си и любые better C, это именно что лапти и лучина, из 70х

lovesan ★★★
()
Ответ на: комментарий от zurg

Ага, только через сишный API/ABI? То есть, чтобы обеспечить нормальную динамическую линковку в расте (речь не про плагины) нужно:

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

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

Werenter ★★☆
()
Последнее исправление: Werenter (всего исправлений: 1)
Ответ на: комментарий от Werenter

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

zurg
()
Последнее исправление: zurg (всего исправлений: 1)

Развитие ЯП вышло на плато, это обычная стадия для любой технологии. Здесь нет роста в скорости и повышения эффективности, зато в полный рост проявляется конкурентная борьба и попытки захватить рынок. В том числе можно ожидать и появления «неоцинкованных китайцев на один сезон», если провести аналогию с грузовиками, хочешь - пользуйся, не хочешь - катайся на МАЗе. Однако, становиться спецом по сезонным китайцам хотят только пионеры.

Irma ★★
()

не успел от раста отойти

Какой ты впечатлительный мальчик, Томми (тм).

Nervous ★★★★★
()

C, C++, Rust, Zig

напрашивается аналог пасты про ПЫХОПЛЕЯДУ

shimshimshim
()
Ответ на: комментарий от skidphysic

Это конечно полемика, но допустим, чем (с такой целью) не устроила ява? Сишарп так и быть, проприетарный.

Ну так очевидно же - Java и C# необходим gc. Работа gc обеспечивается рантаймом, и стоит относительно дорого, хотя и обеспечивает некоторые преимущества. Rust позиционируется как язык системной разработки, и программы созданные на нём должны не слишком много весить, работать быстро и запускаться на «голом» железе, безо всякой поддержки рантайма. Потому в Rust вместо нормального gc замутили концепцию заимствований - по сути gc на автоподсчёте ссылок, большей частью вытисненный на стадию компиляции, а частично в специальные структуры данных стандартной библиотеки.

QsUPt7S ★★
()
const std = @import("std");
const expect = std.testing.expect;

// You can assign constant pointers to arrays to a slice with
// const modifier on the element type. Useful in particular for
// String literals.
test "*const [N]T to []const T" {
    var x1: []const u8 = "hello";
    var x2: []const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
    try expect(std.mem.eql(u8, x1, x2));

    var y: []const f32 = &[2]f32{ 1.2, 3.4 };
    try expect(y[0] == 1.2);
}

// Likewise, it works when the destination type is an error union.
test "*const [N]T to E![]const T" {
    var x1: anyerror![]const u8 = "hello";
    var x2: anyerror![]const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
    try expect(std.mem.eql(u8, try x1, try x2));

    var y: anyerror![]const f32 = &[2]f32{ 1.2, 3.4 };
    try expect((try y)[0] == 1.2);
}

// Likewise, it works when the destination type is an optional.
test "*const [N]T to ?[]const T" {
    var x1: ?[]const u8 = "hello";
    var x2: ?[]const u8 = &[5]u8{ 'h', 'e', 'l', 'l', 111 };
    try expect(std.mem.eql(u8, x1.?, x2.?));

    var y: ?[]const f32 = &[2]f32{ 1.2, 3.4 };
    try expect(y.?[0] == 1.2);
}

// In this cast, the array length becomes the slice length.
test "*[N]T to []T" {
    var buf: [5]u8 = "hello".*;
    const x: []u8 = &buf;
    try expect(std.mem.eql(u8, x, "hello"));

    const buf2 = [2]f32{ 1.2, 3.4 };
    const x2: []const f32 = &buf2;
    try expect(std.mem.eql(f32, x2, &[2]f32{ 1.2, 3.4 }));
}

// Single-item pointers to arrays can be coerced to many-item pointers.
test "*[N]T to [*]T" {
    var buf: [5]u8 = "hello".*;
    const x: [*]u8 = &buf;
    try expect(x[4] == 'o');
    // x[5] would be an uncaught out of bounds pointer dereference!
}

// Likewise, it works when the destination type is an optional.
test "*[N]T to ?[*]T" {
    var buf: [5]u8 = "hello".*;
    const x: ?[*]u8 = &buf;
    try expect(x.?[4] == 'o');
}

// Single-item pointers can be cast to len-1 single-item arrays.
test "*T to *[1]T" {
    var x: i32 = 1234;
    const y: *[1]i32 = &x;
    const z: [*]i32 = y;
    try expect(z[0] == 1234);
}

Приятного чтения!

dataman ★★★★★
()
Ответ на: комментарий от Werenter

А динамические библиотеки в зиге работают (в расте нет)?

Насколько я знаю, работают точно так же как и с сишкой.

iron ★★★★★
()

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

Gary ★★★★★
()

Zig

Их там не прикрыли?

P.S.: да, я знаю, что по-немецки пишется по-другому.

Wapieth
()

А Zig из беты вышел? Просто летом, когда интересовался им, было написано, что его нельзя использовать для продакшена. А теперь как с ним дела?

realbarmaley ★★
()
Ответ на: комментарий от dataman

Приятного чтения!

Вы нас пытаетесь поразить синдромом утёнка? Реально хотите сказать, что C или C++ для незнакомого с ними выглядят менее вырвиглазно?

Вот читает такой новичок чужие исходники, а там...
int *ptr; // ладно
int* ptr; // эм...
int * ptr; // что это?
int*ptr; // астанавитесь!

Ладно. Это лёгкий уровень сложности. Давайте хотя бы на средний.
Новичок читает исходники, а там...
int* p() // это я
int (*p)() // а это кто?

Я понимаю, что здесь же всё очевидно. Но вопросы на stackoverflow говорят, что нет... :)

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

atrus ★★★★★
()
Ответ на: комментарий от atrus

Вы нас пытаетесь поразить синдромом утёнка?

Нет, это для тру.

dataman ★★★★★
()
Ответ на: комментарий от skidphysic

Я о том, что, допустим в крестах что-то не устроило, ну дак добавь.

Да, собственно, так и получились Кресты. Теперь их надо по 10 лет учить и никто не хочет.

MoldAndLimeHoney
()
Ответ на: комментарий от skidphysic

В этом нет ничего нового. Если язык выживает и завоёвывает рынок, значит у него есть конкурентное преимущество и он действительно нужен. В противном случае он вашу жизнь никак не затронет.

Ghostwolf ★★★★★
()
Ответ на: комментарий от skidphysic

Я о том, что, допустим в крестах что-то не устроило, ну дак добавь.

Как? Там стандарт, который годами мусолится. Вот автор SRELL (которая во много раз быстрее std::regex) пытался – «SG16 in Prague: No consensus for P1844R1».

dataman ★★★★★
()
Ответ на: комментарий от skidphysic

допустим в крестах что-то не устроило, ну дак добавь. Зачем выдумывать расты, зиги итп?

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

https://webhamster.ru/mytetrashare/index/mtb0/1467033248FT6hne92kG

https://webhamster.ru/mytetrashare/index/mtb0/1706859831p5wl3hm5jj

https://webhamster.ru/mytetrashare/index/mtb0/1706859831p5wl3hm5jj

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 1)

А что, вполне симпатичный язык. Не понимаю, что не нравится, кроме того, что не факт, что он действительно взлетит.

Больше языков, хороших и разных!

CrX ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)