Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 24, 2020 11:11:20

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

> Есть ли у Python будущее?

Нет, у него настоящее. Будущее за Haskell-ом.

> Фигурная скобка на другой строке является синтаксической ошибкой?!

Это фича такая, что бы все в одном стиле писали.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#2 Авг. 24, 2020 11:34:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

Rodegast
Это фича такая, что бы все в одном стиле писали.
Чтобы все в одном стиле писали, в Go есть форматер. Так этот форматер тоже дубовый, потому что его невозможно настроить, он не параметризован. После него мне необходимо ходить и все табуляции в начале строки на четыре пробела править. Хотя если они уж взялись это делать, то в форматере должен быть параметр “отступ = 4 пробела” либо в командной строке, либо в файле настроек форматера. Мало того, коды на Go очень глубокие, как правило, потому что там много конструкций типа горутин, которые в виде определений функций вкладываются в код, из-за чего у него вырастает глубина сама собой. Ну там, горутина внутри свитча или селекта, в котором кейс с циклом, - глубина там получается под десятку, хотя ничего сложного и запутанного там нет. Так они говорят “давай мы тебе сделаем табуляцию, а ты потом её поднастроишь под нужную ширину отображения”. А если я код открою в какой-нибудь консоли, где табуляция вообще не настраивается и равна по ширине 8 символам, я там что, код не смогу редактировать из-за их навязанной тупости? И вот эта фигня со скобкой должна быть в форматере, а не мешать компиляции. Какое отношение скобка имеет к компиляции?

Вот всего вот этого нет в Rust'е. Хотя по новизне, по фичам он похож на Go. Так что его смысл учить есть, а вот эту парашу - спасибо, посмотрели, классно, идеи там всякие новые, ждём нормальную версию, эта пока что похожа на какую-то бету.



Отредактировано py.user.next (Авг. 24, 2020 11:37:27)

Офлайн

#3 Авг. 24, 2020 11:36:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

py.user.next
Хотя по новизне, по фичам он похож на Go.
Что? Дайте три фичи идентичные для Раст и Го.



Офлайн

#4 Авг. 24, 2020 12:53:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

FishHook
Дайте три фичи идентичные для Раст и Го.
Да в Rust'е побольше фич разных интересных
fn main() {
let mut n = 0;
let f = |x| x * x;
let res = loop {
n += 1;
println!("Func = {}", f(n));
if n >= 3 {
break "ok";
}
};
println!("Result: {}", res);
}

Тот же код, наглым образом записанный в одну строку
fn main(){let mut n=0;let f=|x|x*x;let res=loop{n+=1;println!("Func = {}",f(n));if n>=3{break"ok";}};println!("Result: {}",res);}

[guest@localhost rust]$ rustc example.rs 
[guest@localhost rust]$ ./example
Func = 1
Func = 4
Func = 9
Result: ok
[guest@localhost rust]$

Ну, и Rust современнее в плане программирования. Там все переменные по умолчанию не переменные, а константы. И только если тебе надо сделать из константы переменную, ты добавляешь к ней слово mut. В Go такого и близко нет, всё по старинке.
В коде выше можно только n менять. Остальное тебе не дадут поменять, потому что это не разрешалось явно при задании. Безопасно всё.

Как там в Go можно сделать структуру данных дерево, где его можно заполнить строками или числами? Вот ты код напиши просто, это будет смешно. Для каждого типа ты будешь писать по дереву.
В Rust'е же ты можешь использовать шаблон, как в C++, где тип задаётся любым. Один раз пишешь дерево и потом много раз его используешь, заполняя разными данными.



Отредактировано py.user.next (Авг. 24, 2020 13:06:18)

Офлайн

#5 Авг. 24, 2020 13:40:29

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

py.user.next
Rust по фичам он похож на Go.
FishHook
Дайте три фичи идентичные для Раст и Го.

И в итоге вы демонстрируете что “В Go такого и близко нет”
Я прекрасно знаю, что есть в обоих этих языках, я просил подтверждения слов о похожести фичей.



Офлайн

#6 Авг. 24, 2020 14:55:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10024
Репутация: +  857  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

FishHook
И в итоге вы демонстрируете что “В Go такого и близко нет”
Там есть это. Просто оно там не доделано или сделано через одно место, что им пользоваться нельзя (когда пользуешься, жалеешь время потраченное). Например, цикл for там есть с range, который якобы новшество такое, срезы, но там это всё использовать вообще неудобно. В Go range возвращает второе значение, даже когда оно не нужно. И там нашли выход! Там надо ставить подчёркивание, чтобы на него принять это ненужное значение, от которого просто так избавиться нельзя. То есть они не доработали язык, а вставили в него затычку. Знаешь, как это бывает “я сейчас затычку вставлю, а потом, когда будет время, я это сделаю по-нормальному”. Вот это как раз тот случай.

FishHook
Я прекрасно знаю, что есть в обоих этих языках
Как-то ты не заметил цикл loop, который есть и в Go. Там гибкий оператор for. Также там использован break, который не просто делает break, как в старых языках, но делает этот break куда-то или с чем-то. Также там использовано создание функции прямо в блоке кода.

Вот срезы в Rust
fn main() {
for i in &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10][2..5] {
println!("{}", i);
};
}
[guest@localhost rust]$ rustc slice.rs 
[guest@localhost rust]$ ./slice
3
4
5
[guest@localhost rust]$
Похоже? Но вот в Go то же самое сделай.

package main

import "fmt"

func main() {
for _, i := range []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}[2:5] {
fmt.Println(i)
}
}
[guest@localhost go]$ go run slice.go 
3
4
5
[guest@localhost go]$
Что это за подчёркивание там в for'е? А, так это ненужный индекс. Чтобы ненужный индекс на i не падал, нужно забить его пустотой, чтобы он туда падал. Когда пропираешься с дизайном и поменять это уже быстро не можешь, а “долго” неизвестно на сколько времени затянется, то ты делаешь такую быструю косметическую фигню, чисто чтобы ничего не ломалось, и преподносишь её так, будто это такая типа умная и нужная фича. Почему я и говорю, что это промежуток. Что-то их торопило и в итоге они выпустили сырой продукт, не доделав это всё.
Прошло немного времени и Rust их перебил по популярности, потому что фичи тоже есть, только там всё в порядке с красотой, а за развитием языка стоит тоже крупная компания, которая не даст ему сдохнуть завтра из-за нехватки денег на разработчиков (как это с инди-языками бывает, со стартапами и прочей хренью).



Отредактировано py.user.next (Авг. 25, 2020 00:35:06)

Офлайн

#7 Авг. 24, 2020 20:46:17

oDoDo
Зарегистрирован: 2020-05-05
Сообщения: 70
Репутация: +  0  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

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

Офлайн

#8 Авг. 25, 2020 20:03:56

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Есть ли у Python будущее?

oDoDo
Так вроде питон быстрее вычесления проводит чем go? Нейросети, дата сайн и прочие направления где есть большая работа с данными, как оно может пропасть?

проще и более юзер-френдли, ну и всё равно там многое на С-экстеншинах для скорости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version