|
2.2, Аноним (-), 12:59, 16/02/2018 [^] [^^] [^^^] [ответить]
| +9 +/– |
Что такое Vala? Вы откуда к нам приехали? У нас только го, раст, питон, си, ява и тп.
| |
|
3.9, Nexmean (?), 13:22, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Гибкий, быстрый, строгий. Пожалуй самый строгий из императивных языков программирования. При это присутствует возможность построения абстракций (~нулевой стоимости) практически любой сложности, но ради справедливости стоит отметить, что не любой. Например HKT ещё не завезли и не факт что вообще завезут.
| |
|
4.56, angra (ok), 16:31, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Пожалуй самый строгий из императивных языков программирования
Ты забыл добавить самое важное ", которые я знаю".
Например go более строгий.
| |
|
5.70, Nexmean (?), 17:52, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ага, строгость уровня interface{} и передачи в горутины не thread-safety типов.
| |
|
6.74, Аноним (-), 18:05, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Гагага, есть наблюдательные. У нас строго типизированный язык, но мы тут сделаем хак... оп, и у нас interface{} по функциям гуляет
| |
|
7.78, angra (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Смысл строгой типизации не в том, чтобы не дать программисту возможности сделать желаемое, а в том, чтобы не дать ему случайно сделать то, чего он не хотел. Использование interface{} это явный выбор программиста, а вот преобразования типов компилятором в выражениях без соответсвующего прямого указания это неявное действие.
Ну и отдельно отмечу, что interface{} это совсем не синоним произвольного типа. Без _явного_ преобразования в конкретный тип единственное, что можно с таким объектом сделать, это сохранить и передать куда-либо еще. К примеру такой код работать не будет:
func add ( a,b interface{} ) interface{} {
return a+b
}
| |
|
|
9.116, angra (ok), 22:27, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | ![](/avatar/f0febd67bb0e05a87db7f11744f29678.jpg) Конечно Потому оно и называется type assertion, а не type cast У него есть вто... текст свёрнут, показать | |
|
|
9.117, angra (ok), 22:39, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | ![](/avatar/f0febd67bb0e05a87db7f11744f29678.jpg) В общем-то да Интерфейсная переменная в go являет собой структуру из двух полей... текст свёрнут, показать | |
|
|
|
|
|
|
|
4.53, Аноним (-), 16:10, 16/02/2018 [^] [^^] [^^^] [ответить]
| +4 +/– |
> Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности,
> сравнимой с языком C.
А гнум написман прямо на С, что не мешает ему безбожно тормозить. Что сказать то хотел?
| |
|
5.79, AKR (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Большая часть окружения написана на языке Vala, что позволяет достигнуть производительности,
>> сравнимой с языком C.
> А гнум написман прямо на С, что не мешает ему безбожно тормозить.
> Что сказать то хотел?
Только то, что это не такой уж и неизвестный язык программирования, раз целая DE и разный софт под неё на Vala написаны, причём на дистрибутиве не из редких.
| |
5.89, Аноним (-), 20:11, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А гнум написман прямо на С, что не мешает ему безбожно тормозить.
Когда он был написан на C и Vala, он не тормозил. Тормозить стал, когда хипстота напихала туда JS.
| |
|
|
3.55, Онаним (?), 16:30, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Валя - это транспайлер урезанной старой версии C# в C. В целом достаточно приятная и полезная штука.
| |
|
4.135, neAnonim (?), 01:20, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
только коммерческие проекты на ней писать нельзя так как она гном библиотеки линкует by design.
| |
|
5.177, Нет ты (?), 14:21, 18/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Под desktop легко, там LGPL как в Qt. Но если конечно же, кто-то сделал независимую реализацию GLib/GObject под zLib/MIT/Boost/BSD тогда внимания Vala приобрела намного больше. Чудесный язык, но перешел на сторону D с C++, доволен, особенно после того как добрали interop с C++ (что не мало важно, есть много хороших вещей на нем, а изобретать велосипед не охота).
| |
|
|
3.179, Аноним (-), 17:08, 18/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Что такое Vala? Вы откуда к нам приехали? У нас только го,
> раст, питон, си, ява и тп.
Си у вас нету, не пользуются хипстеры сями.
| |
|
2.7, evkogan (?), 13:22, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Vala это обертка над Си да еще и заточенная исключительно на GTK.
Гораздо интереснее сравнение с Go. При том что тут нет сборщиков мусора и т.п, но есть защита по работе с памятью. К сожалению ощущение что кроме как внутри Мозилы его никто серьезно не пользует. То ли есть объективные недостатки, то ли просто не пробовали не ясно.
| |
|
3.13, Nexmean (?), 13:27, 16/02/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
Объективный недостаток - Rust слишком не похож на мейнстримные языки. Соответственно подавляющая масса программистов чтобы вкатиться должна потратить много времени и усилий, многие просто бросят это дело в самом начале, скажут, мол язык фекалия с инопланетными синтаксисом и/или семантикой и пойдут дальше кодить на Java/C/C++/C#/Go/JavaScript/Python.
| |
|
4.33, Аноним (-), 15:09, 16/02/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
Вот только не надо. У го тоже вполне инопланетный синтаксис как бы его не называли C-подобным, а многое вообще схоже с растом.
| |
|
5.42, Аноним (-), 15:38, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
У Go вполне читабельный и понятный синтаксис. А главное, - он примитивный. Есть, конечно, бредовые моменты, как например, методы с большой буквы, или массивы с квадратными скобками впереди. Но в целом, идеи интересные.
| |
|
6.57, angra (ok), 16:37, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Есть, конечно, бредовые моменты, как например, методы с большой буквы
Большая и маленькая буква в начале _любого_ идентификатора никак не связана с методами, это гениальный в своей простоте индикатор экспортируемости. Так что приватные методы можно без проблем начинать с маленьких букв.
| |
|
7.67, Аноним (-), 17:28, 16/02/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
Любой язык, который навязывает оформление кода (в т.ч. и выбор имен) - broken by design.
| |
|
8.71, Аноним (-), 17:52, 16/02/2018 [^] [^^] [^^^] [ответить] | +4 +/– | В смысле, заставляет расставлять везде скобочки и , не разрешает начинать имена... текст свёрнут, показать | |
|
9.86, Аноним (-), 20:05, 16/02/2018 [^] [^^] [^^^] [ответить] | +1 +/– | Нет Любое утверждение можно довести до абсурда Но когда программа ломается и м... текст свёрнут, показать | |
|
10.104, Аноним (-), 21:13, 16/02/2018 [^] [^^] [^^^] [ответить] | +1 +/– | this Ведь если заменить пробелы на скобочки довольно частая категория ошибо... большой текст свёрнут, показать | |
|
11.105, Аноним (-), 21:27, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | Да, тот же В C, к примеру, как код ни оформляй, на какой строке и сколькими про... большой текст свёрнут, показать | |
|
12.108, Аноним (-), 21:51, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | Ох уж это выборочное восприятие А если недоставить пару скобок Или поставить н... большой текст свёрнут, показать | |
|
13.115, Аноним (-), 22:18, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | Изменится Но в отличие от эта ошибка будет видна вполне себе невооруженным глаз... большой текст свёрнут, показать | |
|
|
|
10.120, angra (ok), 22:56, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | ![](/avatar/f0febd67bb0e05a87db7f11744f29678.jpg) Сейчас я тебе скажу страшное, приготовься В любом ЯП, например С, в котором иде... большой текст свёрнут, показать | |
|
11.127, Аноним (-), 23:26, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | Раз уж мы срываем покровы, то я тебе шепну по секрету, что я говорил об именах, ... большой текст свёрнут, показать | |
|
|
|
|
15.140, Аноним (-), 02:49, 17/02/2018 [^] [^^] [^^^] [ответить] | +/– | Про синдром утёнка - это мимо Во всяком случае, в том, что касается выбора имён... большой текст свёрнут, показать | |
|
16.175, анон (?), 05:20, 18/02/2018 [^] [^^] [^^^] [ответить] | +/– | уж лучше один раз переименовать, чем при использовании держать в уме, стиль иден... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
4.102, Ordu (ok), 20:43, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Объективный недостаток - Rust слишком не похож на мейнстримные языки. Соответственно подавляющая масса программистов чтобы вкатиться должна потратить много времени и усилий
Ой, да ладно.
https://www.rust-lang.org/pdfs/Rust-Tilde-Whitepaper.pdf
Стартап, и в нём веб-программеры на ходу переучиваются с ruby на rust, переписывая код с ruby на rust. Достигая при этом 100% успеха, ссутся кипятком от сокращения расхода памяти на 92%, и не могут нарадоваться на то, что баги теперь проявляются не во время выполнения, а на этапе компиляции.
Веб-программисты, Карл!
| |
|
|
6.151, Ordu (ok), 07:59, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Пусть играются, рубистов не жалко.
Это я "играюсь" с rust'ом. Они зарабатывают денег на нём.
| |
|
|
|
3.17, Аноним (-), 13:40, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Vala это обертка над Си да еще и заточенная исключительно на GTK.
Не вводите людей в заблуждение, это не так: vala - это не обертка над Си, его компилятор транслирует код написанный на vala с си-сорцы. Заточена она не под GTK, а использует GObject - объектную систему построенную на glib и libc (больше зависимостей нет). Про нужность той же glib если даже писать на си рассказывать думаю не нужно. Связь между glib и GTK для самых маленьких в картинках: https://en.wikipedia.org/wiki/GLib
Vala - штука довольно мощная, гибкая и точно должна понравится сишникам. А что rust? Я сишник, мне должен понравиться rust?
| |
|
4.20, yet another anonymous (?), 13:50, 16/02/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
> .. Про нужность
> той же glib если даже писать на си рассказывать думаю не
> нужно.
По мне, "нужность" glib --- очень спорный момент.
| |
4.21, Аноним (-), 13:58, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Про нужность той же glib если даже писать на си рассказывать думаю не нужно.
Вот и предлагается не писать на си, а писать на Rust.
| |
4.26, Хряк (?), 14:53, 16/02/2018 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Заточена она не под GTK
А на чем кроме gtk можно писать гуи-приложения?
| |
4.76, Аноним (-), 18:16, 16/02/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
>> Vala это обертка над Си да еще и заточенная исключительно на GTK.
> Не вводите людей в заблуждение, это не так: vala - это не обертка над Си, его компилятор транслирует код написанный на vala с
Это и есть "обертка над си". Не пойму, чего в этом особенного.
| |
|
|
6.171, Аноним (-), 17:13, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Тогда и rust можно назвать обёртка над llvm, ведь по факту это так.
Можно. Разрешаю. Такая же обертка, как и шланг.
А если уж не различать "по факту" между компилятором высокоуровневого ЯП и низкоуровневым бэкэндом-инфраструктурой для компилирования, то тогда и питоны с жабаскриптами тоже считай почти нативщина, ведь там же есть JIT, которые суть обертка ...
| |
|
|
4.94, Аноним (-), 20:17, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Vala - штука довольно мощная, гибкая и точно должна понравится сишникам. А
> что rust? Я сишник, мне должен понравиться rust?
Rust должен нравиться плюсовикам, но никак не сишникам.
| |
4.103, Ordu (ok), 20:51, 16/02/2018 [^] [^^] [^^^] [ответить] | +/– | ![](/avatar/f2ce01df414acbe693c377f279540a19.jpg) Нет Мне Vala совершенно не нравится ООП -- sucks Все эти вызовы через виртуал... большой текст свёрнут, показать | |
|
|
|
3.46, Хряк (?), 16:01, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
В gnome-builder в меню выбора языка есть: С, С++, С#, Vala, Python, JavaScript и все.
Rust отсутствует. Считаю, это показатель.
| |
3.88, smuzihleb (?), 20:09, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
это тем патлатым придуркам на скутерах, что испоганили гном? не мудрено - их патлатые друзья уже испоганили файрфокс
| |
|
|
|
|
3.15, Nexmean (?), 13:32, 16/02/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
В Rust'е нет Java-like ООП-а. Rust немного о другом. В Rust'е балом правит статический полиморфизм взамен полиморфизму подтипов. Хотя в случае чего, можно конечно и полиморфизмом подтипов воспользоваться, но статический полиморфизм покрывает большинство ситуаций и к тому же дешевле, нежели полиморфизм подтипов(прямой вызов функции обращением по адресу функции, вместо того, чтобы для начала найти этот адрес в таблице виртуальных методов.
| |
|
4.146, Аноним (-), 06:50, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> В Rust'е нет Java-like ООП-а. Rust немного о другом. В Rust'е балом
> правит статический полиморфизм взамен полиморфизму подтипов. Хотя в случае чего, можно
> конечно и полиморфизмом подтипов воспользоваться, но статический полиморфизм покрывает
> большинство ситуаций и к тому же дешевле, нежели полиморфизм подтипов(прямой вызов
> функции обращением по адресу функции, вместо того, чтобы для начала найти
> этот адрес в таблице виртуальных методов.
Елки моталки скинте ссылку на все термины то что вы тут понаписали, а то нефига вообще непонятно .
| |
|
5.163, Аноним (-), 14:52, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Елки моталки скинте ссылку на все термины то что вы тут понаписали,
> а то нефига вообще непонятно .
Тут одно из двух:
1. С ООП вы всерьез не сталкивались, и скорее всего оно и не сильно нужно.
2. Уроки сами себя не сделают!
| |
|
|
3.29, Аноним (-), 15:04, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Нет, в "богомерзком" C++ ОО сделано и то элегантней.
В С++ ОО нет и никогда не было(и никогда не будет).
Попробуйте создать производный класc от std::vector ололо.
| |
|
4.51, Анончик (?), 16:08, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
И что же помешает создать производный класс от std::vector, а? Он вроде как не final, бери да создавай.
| |
4.73, freehck (ok), 18:00, 16/02/2018 [^] [^^] [^^^] [ответить]
| +3 +/– |
> В С++ ОО нет и никогда не было(и никогда не будет).
В С++ ООП реализован настолько, насколько это возможно для низкоуровневого компилируемого языка.
Вообще, ООП в каждом языке -- свой, со своими нюансами и фишечками. Тяжело выбрать какой-то один, канонический, чтобы другие языки тыкать в то, что их-то ООП не настоящий.
| |
|
|
6.184, freehck (ok), 09:02, 20/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Не спорю, в С++ он реализован xерово,
Я не говорю о том, что он реализован хреново. Я говорю о том, что он реализован так, как это было возможно. Часть архитектурных решений сделаны не очень, но при этом он вполне пригоден для использования.
> но в Rust ещё ужасней.
В Rust вообще говоря не ООП, а полиморфизм типов, почти один-в-один классы в Haskell. Это не ужасно, это просто другой подход.
Притом более гибкий подход, по сравнению с традиционными ООП в C++/Java. Как пример: в OCaml есть тоже есть ООП, но в большинстве случаев удобнее использовать полиморфизм типов и модули.
| |
|
|
|
|
2.11, Аноним (-), 13:26, 16/02/2018 [^] [^^] [^^^] [ответить]
| –4 +/– |
managed языки не нужныне надо оберегать программиста от возможных ошибок, надо учить так чтобы программисты их не делали.
| |
|
3.14, NoName (?), 13:30, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
C++ это легаси язык для старперов которые помнят все друрости реализованные там.
| |
|
4.34, Аноним (-), 15:11, 16/02/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
Действительно теперь подход проще: хренакс хренакс и в продакшен.
| |
|
5.147, Аноним (-), 07:00, 17/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Действительно теперь подход проще: хренакс хренакс и в продакшен.
Клиент не будет ждать пока Вы разработаете спустя 30 лет свою программу когда Ваш коллега с меньшим ... опытом организует MVP за один вечер.
К сожалению, многие MVP так и не доходят до уровня решения на C/C++ из-за неокупаемости.
При всем моем уважении к C/C++ это фундаментальные языки для систем фундаментальных и отработанных и требующих соответствующего системного подхода: вроде Баз данных, систем под нагрузкой и т.д.
Задачи вроде веба ну вы в курсе кто там Ruby и PHP педалируют во всю. И главное работодатели довольны наняв школьников и студентов за десятую зарплаты нормального ынжынера.
Все дело в деньгах карл а не в идеалах
| |
|
6.173, Аноним (-), 18:39, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> Действительно теперь подход проще: хренакс хренакс и в продакшен.
> Клиент не будет ждать пока Вы разработаете спустя 30 лет свою программу
> когда Ваш коллега с меньшим ... опытом организует MVP за один
> вечер.
Угу, который через неделю накроется медным тазом на втором десятке пользователей. А от макак, которые его на коленке состряпали, уже и след простыл.
Клиенты разные бывают. Есть такие, которым важно качество, и они не прочь заплатить за него.
| |
|
|
|
3.28, Аноним (-), 14:59, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> надо учить так чтобы программисты их не делали.
> сам не способ написать простое предложение без ошибок. | |
|
4.32, Аноним (-), 15:09, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> сам не способ написать простое предложение без ошибок.
>не способ
ты тже
| |
|
5.148, Аноним (-), 07:02, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>> сам не способ написать простое предложение без ошибок.
>>не способ
> ты тже
и я тоже. пожетому вот LFLAGS=-Wall -g3
| |
|
|
3.82, Аноним (-), 18:38, 16/02/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
>managed языки не нужныне надо оберегать программиста от возможных ошибок, надо учить так чтобы программисты их не делали.
Ядро Линукс течёт. Я все сказал.
| |
|
|
1.16, yet another anonymous (?), 13:34, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Определённое напряжение вызывает назойливое проталкивание инфраструктуры доставки бинарников ("пакетный менеджер, позволяющий получить нужные для программы библиотеки в один клик") и сборки ("Включена по умолчанию инкрементальная компиляция,"). Питоний подход к оформлению тоже не радует: "Реализована утилита rustfmt для автоматического формирования исходных текстов в соответствии с ...".
| |
|
2.30, Аноним (-), 15:05, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Cargo вполне умеет тащить зависимости просто с git сервера, или брать их локально с фc, так что, нет.
| |
|
3.58, yet another anonymous (?), 16:57, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Cargo вполне умеет тащить зависимости просто с git сервера, или брать их
> локально с фc, так что, нет.
А "язык отдельно, управление кодом --- отдельно" --- это устаревшая концепция, о которой вспоминают только враги всего прогрессивного, да?
| |
|
4.133, Аноним (-), 00:51, 17/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
а в чем собственно проблема? Cargo - система сборки вроде cmake, все что она делает - это скачивает нужные файлы и вызывает конпелятор (rustc) с нужными опциями. Единственное не отдельное - это то, что она пилится самими разработчиками языка
| |
|
|
2.38, Крутой аноним (?), 15:29, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
в свой кросс-платформенный проект, здесь это можно сделать практически одной строчкой.
Причем не знаю как с пакетным менеджером питона, но здесь все сделано по уму.
Можно с помощью cargo-vendor все зависимости упаковать, так что сборка не требует
доступа к Интернету.
> Питоний подход к оформлению тоже не радует:
А как review кода проводить без автоматического форматирования?
| |
|
3.47, Аноним (-), 16:04, 16/02/2018 [^] [^^] [^^^] [ответить]
| –3 +/– |
>А как review кода проводить без автоматического форматирования?
review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете художника.
| |
|
4.60, yet another anonymous (?), 17:07, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>А как review кода проводить без автоматического форматирования?
> review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
> художника.
Аналогично: review процессы отдельно, язык отдельно. Не?
| |
|
5.65, Илья (??), 17:15, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>>А как review кода проводить без автоматического форматирования?
>> review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
>> художника.
> Аналогично: review процессы отдельно, язык отдельно. Не?
Я бы ещё частично кодоанализ вынес из языка и соглашения об оформлении кода.
Мне почти всё нравится в rust, но когда snake case проверяется прямо компилятором - этого я не пойму.
| |
5.90, Крутой аноним (?), 20:13, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>>А как review кода проводить без автоматического форматирования?
>> review нужно только 6ыдлокоду индусов. Код это искусство. Проводя review вы обижаете
>> художника.
> Аналогично: review процессы отдельно, язык отдельно. Не?
Так язык и reivew связаны только тем что аналог clang-format идет вместе с компилятором
rust, впрочем clang-format вроде с clang тоже устанавливается.
| |
|
6.99, Аноним (-), 20:24, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Так язык и reivew связаны только тем что аналог clang-format идет вместе
> с компилятором
> rust, впрочем clang-format вроде с clang тоже устанавливается.
Это аналог не clang-format, а gofmt. Разница в том, что первый можно настроить.
| |
|
7.119, Крутой аноним (?), 22:56, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Это аналог не clang-format, а gofmt. Разница в том, что первый можно настроить.
Что-то ты гонишь чувак. А rustfmt.toml это типа не настройки?
| |
|
|
|
|
3.59, yet another anonymous (?), 17:06, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
> ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
> в свой кросс-платформенный проект, здесь это можно сделать практически одной строчкой.
Концептуально совпадает с современной Web-разработкой. Интересно, что эту концепцию тянут в разработку ядер и прочей встройки.
> Причем не знаю как с пакетным менеджером питона, но здесь все сделано
> по уму.
> Можно с помощью cargo-vendor все зависимости упаковать, так что сборка не требует
> доступа к Интернету.
Это не существенно. Вам отгружают фактически BLOB, содержимое (состояние, история) которого вы никак не контролируете.
| |
|
4.91, Крутой аноним (?), 20:15, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Это не существенно. Вам отгружают фактически BLOB, содержимое (состояние, история) которого
> вы никак не контролируете.
В смысле blob? Сборка все время осуществляется из исходников, они распакованные лежат в ~/.cargo/что-то там, IDE вас перебросит туда если вы сделаете "goto" и именно из этих исходников соберется ваш проект.
| |
|
3.69, Аноним (-), 17:36, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
> А как review кода проводить без автоматического форматирования?
Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
| |
|
4.93, Крутой аноним (?), 20:16, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> А как review кода проводить без автоматического форматирования?
> Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
Вот именно что глазами, просматривать сотни строк изменений глазами,
из-за того что другая IDE по другому код отформатировала,
вам свои глаза что ли не жалко и свое время?
| |
|
5.107, Аноним (-), 21:47, 16/02/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
>>> А как review кода проводить без автоматического форматирования?
>> Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
> Вот именно что глазами, просматривать сотни строк изменений глазами,
> из-за того что другая IDE по другому код отформатировала,
> вам свои глаза что ли не жалко и свое время?
Различные (распространенные) варианты форматирования кода меня лично не напрягают при рецензировании. Лишь бы суть происходящего была понятна. Если вас форматирование вводит в ступор, то возможно, вам рано рецензировать. Разумеется, если вам попался код, претендующий на первую десятку в IOCCC[1], то рецензирование можно завершить сразу с комментарием "переформатировать".
[1]: https://www.ioccc.org/
| |
|
6.110, другой Аноним (?), 21:59, 16/02/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
>>>> А как review кода проводить без автоматического форматирования?
>>> Внезапно, глазами. Вообще не понимаю, как одно с другим связано.
>> Вот именно что глазами, просматривать сотни строк изменений глазами,
>> из-за того что другая IDE по другому код отформатировала,
>> вам свои глаза что ли не жалко и свое время?
> Различные (распространенные) варианты форматирования кода меня лично не напрягают при
> рецензировании. Лишь бы суть происходящего была понятна.
Яснопо. Расходимся. "Рецензиант" даже не понял сути проблемы.
| |
|
7.113, Аноним (-), 22:03, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Яснопо. Расходимся. "Рецензиант" даже не понял сути проблемы.
Видимо, потому что у меня она просто не возникает. Может, вы объясните?
| |
|
|
7.129, Аноним (-), 23:38, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> При чем здесь вообще общие стили, и насколько они напрягают?
> Мы говорим о различии стилей, то есть приходит тебе на review патч,
> там на самом деле изменений две строчки, а еще 300 строчек изменены,
> потому что табы пробелами заменены, или перед фигурными скобочками
> перевод строки поставлен, и т.д. и т.п.,
Тулзовины не спасут от отсутствия культуры работы с кодом.
| |
7.138, Аноним (-), 01:34, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> то есть приходит тебе на review патч, там на самом деле изменений две строчки, а еще 300 строчек изменены,
потому что
кто-то чересчур вумный запустил для всего файла
> такие тулзовины типа rustfmt
А если не можешь настроить IDE, чтобы она не ломала существующее форматирование, то надо менять. Либо IDE, либо профессию.
| |
|
|
|
|
3.97, Аноним (-), 20:22, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
> ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
> в свой кросс-платформенный проект
…и npm leftpad.
| |
|
4.124, Крутой аноним (?), 23:07, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>>> Определённое напряжение вызывает назойливое проталкивание инфраструктуры
>> ИМХО это одна из основных фич, вспомните боль подключения чего-то стороннего
>> в свой кросс-платформенный проект
> …и npm leftpad.
Не знаю насчет javascript, но это же
а)Компилируемый язык
б)Все зависимости версионированы
Поэтому у "npm leftpad" маленькая вероятность случиться.
| |
|
|
2.77, Аноним84701 (ok), 18:24, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Питоний подход к оформлению тоже не радует: "Реализована утилита rustfmt для автоматического формирования исходных текстов в соответствии с ...".
Ээ-э, а как же clang-format? Или тот же indent - там автор видимо вообще угнал машину времени, чтобы иметь возможность подсмотреть "питоний подход к оформлению" :)
| |
|
3.83, yet another anonymous (?), 18:53, 16/02/2018 [^] [^^] [^^^] [ответить]
| –1 +/– |
indent --- не часть компиляторного проекта. А вот clang-format, кажется, вместе с libformat --- в репозитории clang. Что говорит о тяге CLang/LLVM команды к построению летающих комбайнов.
| |
|
4.95, Крутой аноним (?), 20:17, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> indent --- не часть компиляторного проекта. А вот clang-format, кажется, вместе с
> libformat --- в репозитории clang. Что говорит о тяге CLang/LLVM команды
> к построению летающих комбайнов.
Скорее их лучшее пониманию проблем разработчиков C++ работающих в больших командах.
| |
4.106, Аноним84701 (ok), 21:30, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> indent --- не часть компиляторного проекта.
Пока не прибивают гвоздями к компилятору, не вижу разницы.
Тем более, прикрутить автоформат к готовому парсеру проще, чем клепать свой (недо)парсер (или его эрзац на регекспах, в которых потом и сам черт ногу сломит), а "нужность" на практике показана хотя бы тут:
https://github.com/torvalds/linux/blob/master/Documentation/process/coding-sty
> But even if you fail in getting emacs to do sane formatting, not everything is lost: use indent | |
|
|
|
1.22, Аноним (-), 14:14, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> panic!("Test");
Этой строчкой можно охарактеризовать весь язык.
В любой непонятной ситуации паниковать:))
| |
|
2.81, Аноним (-), 18:32, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> panic!("Test");
> Этой строчкой можно охарактеризовать весь язык.
> В любой непонятной ситуации паниковать:))
А что, лучше продолжать работу в UB, портить файлы и данные?
| |
|
3.123, Аноним (-), 23:05, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Лучше сразу продумывать работу функции до конца и не приделывать ей пятое колесо и делать субъективные выводы о том, что если она вдруг не сделает "panic" (или abort), то данные обязательно испортятся. Мне уже тошно читать иногда исходники firefox'а мозиловцев на русте. Что не строчка, то перечисление, завернутое в класс(точнее наоборот), то какой нибудь panic.
Ситуации разные бывают, и иногда все же важнее не упасть в обморок, а успеть сохранить не сохраненные данные.
| |
|
4.125, Крутой аноним (?), 23:10, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Лучше сразу продумывать работу функции до конца и не приделывать ей пятое
> колесо и делать субъективные выводы о том, что если она вдруг
> не сделает "panic" (или abort), то данные обязательно испортятся. Мне уже
> тошно читать иногда исходники firefox'а мозиловцев на русте. Что не строчка,
> то перечисление, завернутое в класс(точнее наоборот), то какой нибудь panic.
> Ситуации разные бывают, и иногда все же важнее не упасть в обморок,
> а успеть сохранить не сохраненные данные.
А можно пример? Во-первых классов в rust вообще нет.
Во-вторых ошибки и обязательность их обработки это то в чем Rust силен.
Всякие "?", .map_err и т.д. и т.п. в C++ об этом можно было только мечтать,
или пилить свой framework вместо работы.
| |
4.150, Ordu (ok), 07:51, 17/02/2018 [^] [^^] [^^^] [ответить] | +2 +/– | ![](/avatar/f2ce01df414acbe693c377f279540a19.jpg) Rust has a tiered error-handling scheme If something might reasonably be ab... большой текст свёрнут, показать | |
|
|
|
|
2.48, Аноним (-), 16:05, 16/02/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Может кто знает прямые урлы на скачивание архивов? Без rustup?
> скочал-запустил
И эти люди смеются над вендузятниками.
| |
|
3.80, Аноним (-), 18:25, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> И эти люди смеются над вендузятниками.
Грешно смеяться над убогими.
| |
|
|
|
2.49, Аноним (-), 16:06, 16/02/2018 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Судя по тому что на нём пишут операционные системы -
то у когото слишком много свободного времени.
| |
|
|
2.87, Аноним (-), 20:07, 16/02/2018 [^] [^^] [^^^] [ответить]
| +1 +/– |
Исошные стандарты устаревающие каждые три года - вот это сильно лучше.
| |
|
3.109, Аноним (-), 21:54, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Исошные стандарты устаревающие каждые три года - вот это сильно лучше.
Лучше. Уже хотя бы тем, что стандарт есть, и ему следуют все, включая компиляторописателей.
| |
3.136, neAnonim (?), 01:31, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
c99 ISO/IEC 9899:1999, a past version of the C programming language standard.
Источник wikipedia
| |
|
2.100, Аноним (-), 20:28, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Исошного стандарта нет -- значит, нет и языка. Фтoпкy.
Сюрприз: исошные стандарты языков появляются существенно позднее самих языков.
| |
|
3.112, Аноним (-), 22:01, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> Исошного стандарта нет -- значит, нет и языка. Фтoпкy.
> Сюрприз: исошные стандарты языков появляются существенно позднее самих языков.
Важно то, что при стандартизации принимаются во внимание опыт и тенденции всей индустрии. Если язык развивается одной конторой/группой/человеком, то и следует он веяниям этой конторы/группы/человека. Так что язык, для которого не ведутся работы по международной стандартизации - это местячковая игрушка, какой бы привлекательной она ни была.
| |
|
|
|
2.72, НяшМяш (ok), 17:54, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Так вроде бы правильные пацаны, помимо архитектуры не как у всех, сидят на ESR версиях?
| |
|
3.131, Аноним (-), 00:11, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
ESR-версии рано или поздно закончатся, а для librsvg такого понятия вообще нет. А Мозилле до кроссплатформенности, судя по всему дела нет, они больше на винду ориентируются.
| |
|
2.101, Аноним (-), 20:32, 16/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Этот чудесный проект использует в качестве бэкенда LLVM, из-за чего не может
> собраться на некоторых архитектурах: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=881845
> В результате под эти архитектуры нельзя собрать новые версии Firefox и librsvg,
> которую хипстота решила перевести на rust.
А что он должен использовать? Если бы они сами писали бекенд с нуля, с поддержкой архитектур было бы ещё хуже. Не ссы, починят.
| |
|
|
4.137, Аноним (-), 01:32, 17/02/2018 [^] [^^] [^^^] [ответить]
| +2 +/– |
> gcc же, ну
И были бы комментарии в духе «Игрушечный ЯП, транслируется в си! Неосилили свой бэкэнд/можно сразу на си писать! Однозначно ненужно!»
Опеннетчикам не угодишь.
| |
|
|
|
1.111, None (??), 21:59, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> До 10 раз ускорено выполнение операции
То есть теперь скорость выполнения равна 10 разам?
| |
|
2.142, Агроном (?), 03:53, 17/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> А чего это никто пхп не ругает? Непорядок на опеннетике.
Си ругают, а она скопирована с пхп, фигурные скобки и все такое.
| |
|
1.128, Аноним (-), 23:28, 16/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> приняли участие 152 разработчика
Как обмельчали программисты. Для Теха было достаточно одного Кнута.
| |
1.153, Аноним (153), 12:35, 17/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
sysvinit реально переписать на rust?
будет от этого польза, если переписать на rust с максимально возможной параллелизацией?
| |
|
2.186, Аноним (-), 22:54, 20/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Руки прочь от SysVinit! Негоже кошерному SysVinit от LLVM не зависеть.
| |
|
3.187, Аноним (-), 22:55, 20/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
Поправил. Руки прочь от SysVinit! Негоже кошерному SysVinit от LLVM зависеть.
| |
|
|
1.166, Аноним (-), 15:23, 17/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
>>> До 10 раз ускорено выполнение операции поиска символов внутри строки при помощи функции str::find, которая переписана с использованием memchr. На memchr также переведена реализация [u8]::contains, но ускорение её работы не столь внушительно (ускорение примерно в 3 раза). С использованием ассемблерных инструкций проведена оптимизация f32::min и f32::max;
С такими оптимизациями скоро питон догонят!
| |
1.180, Аноним (-), 23:03, 18/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Раст внутри мозиллы и сдохнет. Пока экосистема нарастёт, он станет ненужен
| |
1.185, iZEN (ok), 21:53, 20/02/2018 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вот уже битый час компилится rust-1.24 на замену rust-1.23, который требуется только firefox-58.0.2. Чего же он такой трудный?!
| |
|
|
3.190, iZEN (ok), 12:32, 21/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> Ну это ж мозилла! Один LLVM весит столько же, сколько вся оcтальная
> операционка. А сборка Firefox'а...
rust-1.24.0 - 1ч14м.
firefox-58.0.2 - 1ч37м.
Для сравнения:
gcc8-devel-8.0.1.s20180211 - 14м.
| |
|
4.191, Andrey Mitrofanov (?), 12:43, 21/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> rust-1.24.0 - 1ч14м.
> firefox-58.0.2 - 1ч37м.
> Для сравнения:
> gcc8-devel-8.0.1.s20180211 - 14м.
Ну, видимо новые-модные языки позаковыристеее простого Си (или простого Си++, вроде, в gcc?..). Тем более, что оба "конкурсанта" таскают с собой всё-всё-всё - библиотеки бандлят патченые, рантаймы-гуи-батарейки в комплекте и пр.
Сложный язык и рантайм.... ну, со сборкой LO/AOO посравнивай. Или boost-а какого. Тоже много, наверное, получтся.
| |
|
5.195, iZEN (ok), 20:02, 21/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> rust-1.24.0 - 1ч14м.
>> firefox-58.0.2 - 1ч37м.
> А LLVM в это время вошло, или оно ещё в плюс?
Нет. Это время на сборку соответствующих пакетов. Rust чего-то там делает с LLVM, какие-то шашни мутит, судя по выхлопу процесса сборки. В общем, один монстр использует другого в каких-то позах.
| |
|
4.196, Аноним (-), 20:56, 22/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
> gcc8-devel-8.0.1.s20180211 - 14м.
Не верю. Это разве что без тестов. С тестами у меня несколько часов на SSD.
| |
|
5.197, iZEN (ok), 21:46, 22/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
>> gcc8-devel-8.0.1.s20180211 - 14м.
> Не верю. Это разве что без тестов. С тестами у меня несколько часов на SSD.
% pkg info gcc8-devel
gcc8-devel-8.0.1.s20180211
Name : gcc8-devel
Version : 8.0.1.s20180211
Installed on : Sat Feb 17 10:53:12 2018 MSK
Origin : lang/gcc8-devel
Architecture : FreeBSD:11:amd64
Prefix : /usr/local
Categories : lang
Licenses : GPLv3, GPLv3RLE
Maintainer : gerald@FreeBSD.org
WWW : https://gcc.gnu.org
Comment : GNU Compiler Collection 8
Options :
BOOTSTRAP : off
GRAPHITE : off
Shared Libs required:
libgmp.so.10
libmpfr.so.4
libmpc.so.3
libisl.so.15
Shared Libs provided:
libitm.so.1
libssp.so.0
libatomic.so.1
libcc1plugin.so.0
libcc1.so.0
libgcc_s.so.1
libquadmath.so.0
libcp1plugin.so.0
liblto_plugin.so.0
libstdc++.so.6
libgomp.so.1
libgfortran.so.5
Annotations :
FreeBSD_version: 1101509
cpe : cpe:2.3:a:gnu:gcc:8.0.1:::::freebsd11:x64
Flat size : 193MiB
Description :
GCC, the GNU Compiler Collection, supports a number of languages. This
port installs the C, C++, and Fortran front ends as gcc8, g++8, gfortran8,
respectively.
WWW: https://gcc.gnu.org
Gerald Pfeifer <gerald@FreeBSD.org>
| |
|
4.198, iZEN (ok), 12:44, 23/02/2018 [^] [^^] [^^^] [ответить]
| +/– |
chromium-63.0.3239.132 - 4ч25м.
Процессор AMD Phenom II X6 1055T, ОЗУ 11,5 ГБ.
| |
|
|
|
|