LINUX.ORG.RU

D, Go и Rust, взлетит ли что-нибудь?

 , , , ,


4

8

Привет, LOR. На данный момент в окружающее пространство уже некоторое время накатывает следующая мысль: «Разработчикам прикладного ПО, использующим в своей практике Си и C++, крайне необходимо облегчить жизнь, избавив от ошибок с памятью и предоставив удобные механизмы для параллельного программирования». Одни адепты, этакие Базаровы от программирования, предлагают воплощать задумку с помощью новых языков: D, Go и Rust. Другие же, коих пока явно больше, всячески не желают выходить из своей зоны комфорта, предлагая включать необходимое в новые стандарты уже используемых инструментов.

Как думаешь, садиться ли уже сейчас за изучение одного из убийц Си/C++, чтобы через 5 лет не оказаться на обочине индустрии, или же все продолжит идти в старом русле с незначительными вливаниями новшеств?

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

которые начали писаться за последние 20 лет.

Я выбираю сишку для большинства новых проектов. Но это с одной стороны сорт оф хайлоад, с другой байтомесиво с кодированием видео.

mix_mix ★★★★★
()

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

PolarFox ★★★★★
()

вообще как бы очень смешно читать ниосиляторов сишки или крестов, которые думают, что моновением волшебной палочки Go/Rust/«прочая шелупонь» решит все их проблемы, из-за которых они ниосилили понять си.

А и да. Go это скорее замена питону/яве чем сишке.

А на Ди, кста, у нас сейчас соседнее зднание проекты в сфере биоинформатики клепает. Фактически всю легаси (местами даже с фортрана) сейчас на него переписывают.

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

А какие ещё варианты? Кресты излишни, а всё, что с GC не подходит по очевидным причинам. Единственное, всякие мелкосервисы пишу на go, пока справляется.

mix_mix ★★★★★
()

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

entefeed ☆☆☆
()
Ответ на: комментарий от anonymous

Почему? Типизация-то по-прежнему статическая. Рефлексия используется в крайних случаях, где просто офигенно повышает продуктивность (те же теги у структур). А stand-alone бинари крайне удобно деплоить.

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

Если что куда и взлетит, так только от разрыва пуканов.

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

Мгновенная сборка в native, stand-alone бинарь

ААААА ОШИБКА /lib/libc.so.6: version `GLIBC_2.14' not found

ЕТО ЖЕ ОЧЕВИДНО, КАК ЕЕ РЕШИТЬ!

ПРИШЛО ВРЕМЯ ПЕРЕШОБИРАТЬ С ТЕГОМ NETGO!

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

Да я ничего не говорю против Go, сам не нем местами хелперы или внутренние какие сервисы пишу. Просто звучит так =)

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

Я никак не хотел, люди пугаются.

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

наверное то, что программы на Го читать легко. Нет нагромаждения шаблонов как в бывает в плюсах или лапши из !@#$%^^<> как в перлах или в русте, например.

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

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

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

и что там не понятного? тебя джейсон напугал, чтоль? или то, как его ТС пытался в одну строку свернуть? ну так ты еще XML вспомни.

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

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

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

насаждение единственного стиля

А вот меня бесит скобка '{' на той же строке, что и объявление функции. Особенно, когда объявление длинное.

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

Я выбираю сишку

А. Ну, бывает.

А какие ещё варианты?

Дело не в вариантах. По моим наблюдениям, все персонажи, употребляющие фразы вроде «я выбираю сишку для проектов» - цари разного калибра.

Кресты излишни

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

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

О чем ты говоришь? Даже для C++ далеко не 100% сишного кода является валидным. То есть обратная совместимость таки поломана. Об остальных и говорить нечего.

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

Даже для C++ далеко не 100% сишного кода является валидным.

Ты не уловил суть, но не суть важно. Речь была о «расширяем C до нужной нам кондиции (и возможно одновременно чуть-чуть ломаем совместимость)» vs. «выбрасываем C нафиг и делаем новый C, но уже правильно».

насчет Go взлетел/C++ не взлетел

Это твои фантазии. Я этого не утверждал. C++ и Obj-C имеют свою нишу, но речь не об этом.

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

Модно пояснение, что значит, что Go в какой-то степени требует literate programming?

В честности, что комментарии к экспортированным функциям, типам и переменным являются de-facto обязательными.

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

Go

убийца C

убийца C++

Нет. postman_

А так: Go - убийца C# (хотя люди его делавшие - про шарп навеное даже и не знают :))))

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

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

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

А так: Go - убийца C# (хотя люди его делавшие - про шарп навеное даже и не знают :))))

Прекрасно знают.

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

Ещё бы им не знать :) Езыки - их хлеб. Это хумор такой был.

anonymous
()

чтобы через 5 лет не оказаться на обочине индустрии

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

Ну и моё мнение: Gо взлетит, но мне категорически не нравится. D - не взлетит. Раст - хотелось, чтобы взлетел, хотя им ещё много работы предстоит.

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

Go взлетел/C++ не взлетел

Про плюсы бред конечно, но у tiobe очень стремная индексация, про методы и факапы которой говорится там же в факе. Лично я им доверяю никак. А поскольку мы находимся на opensource.ru, и многие тут живут опенсорцом, то и в качестве индекса предлагаю и использовать опенсорц - http://githut.info/

entefeed ☆☆☆
()
Ответ на: комментарий от beastie

C#, D, Rust, Vala, Obj-C ...
не пытались ломать обратную совместимость с C

Лол что?

Другое дело Go, вот он и взлетел.

Gо с С интегрируется, по моему, лучше чем С#.

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

А имел я в виду, что ванильный C код для этих языков является также валидным синтаксисом.

По моему, из всего списка это справедливо только для С++. Ну и может Obj-C.

DarkEld3r ★★★★★
()

И go и rust взлетят на определённую высоту, имхо. D вряд ли, он уже давно свою нишу занял и она очень маленькая, к сожалению, хотя в своё время язык выглядел очень перспективно.

Вытеснят ли C/C++? Сомневаюсь. Думаю rust будет эдаким аналогом Scala в мире C++. Башковитые парни будут писать на нём, остальные 98% будут писать на С++.

А у go своя ниша — замена php там, где нужна производительность. Он достаточно прост, чтобы его мог освоить любой. Он достаточно быстр, чтобы рвать почти всё. На широком рынке не выстрелит, но свою нишу тоже займёт.

Вообще Java, C++ и PHP с нами навека, имхо. Но это не значит, что остальные языки не нужны.

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

Лайфтаймы и линейные типы довольно трудно использовать.

Можешь рассказать подробнее или дать ссылку?

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

А вот меня бесит скобка '{' на той же строке, что и объявление функции. Особенно, когда объявление длинное.

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

Хотя лучше, конечно, когда такие вещи всё-таки можно настраивать.

DarkEld3r ★★★★★
()

С и C++ останутся.

Возможно взлетит Rust

Нужно через 5 лет посмотреть на тред

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

А имел я в виду, что ванильный C код для этих языков является также валидным синтаксисом.

если у C# и Rust ванильный C код является валидным синтаксисом - ты можешь то же самое сказать про все языки, упоминавшиеся в этом треде.

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

Rust пока ещё нет, но взлетит гарантированно.

На чем основана уверенность?

Есть такая тенденция рыночная, чем ужаснее решение, тем выше шансы на взлёт. Так что у Rust потенциально большие перспективы.

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

А у go своя ниша — замена php там, где нужна производительность

Тут, как раз, он плохо пока пролезает (Revel рулит, но популярность невелика). Настоящий взлёт у Go сейчас у связанного с Docker.

KRoN73 ★★★★★
()

Язык P, уже есть? Взлетит только связка: P,D и Rust.
Go полувзлетел, так и будет дальше. D — загнивает. Rust — взлетит на волне интереса к типобезопасности.

Bad_ptr ★★★★★
()

Go взлетел, но на низком полете пока, дальше видно будет.

D не взлетел и не взлетит, поздно уже. Закат, смерть.

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

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

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

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

Кресты вполне нормальны, а главное - успешно развиваются. Последние стандарты очень позитивны. А грядущие обещают быть ещё лучше.

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

umren ★★★★★
()

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

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

Что такое руст?

Да был когда-то лётчик один... ))

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

rust это такая поделка от создателей XUL. говняли говняли XUL, ниосили его детские болезни побороть, придумали новую игрушку.

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

Что такое руст?

— коррозия; ржавчина
— моральное разложение; коррупция, продажность
— вредное влияние безделья, бездеятельности (на характер, способности)
— ухудшаться, портиться, притупляться, вырождаться (от бездействия)
— притуплять, ослаблять (память, ум)
— томиться от безделья
— портить, развращать, разлагать

В общем, взлетит :)

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

Тут, как раз, он плохо пока пролезает (Revel рулит, но популярность невелика). Настоящий взлёт у Go сейчас у связанного с Docker.

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

Под PHP я вообще говоря понимаю всю плеяду скриптовых языков: PHP, Python, Ruby, Perl. Но среди них, конечно, PHP занимает наверное 99%.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.