[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.27271 Reply
File: gopherbw.png
Png, 205.72 KB, 3861×3861 - Click the image to expand
edit Find source with google Find source with iqdb
gopherbw.png
Добрый день, Анон.
Может ты мне объяснишь, для чего использовать Go? Язык так неплохой, думаю, что у него будет будущее, но сферу применения данного языка я никак не могу определить.
Надеюсь на тебя, анон.
>> No.27272 Reply
>>27271
> но сферу применения данного языка я никак не могу определить.
Так и никто не может, лол. ЕМНИП, сам Гугл как бы сначала задумывал его как «новый Си», но сейчас продвигает его для погромирования серверов и всякого многопоточного софта. Мне лично не особо нравятся некоторые их решения в дизайне (точки с запятой, которые как бы есть, но их как бы нет; использование одновременно «:=», «=» и «==»; использование заглавных для обозначения видимости; и др.). Да и рано пока говорить о каком-либо серьёзном применении, ящитаю, ибо и стандартная библиотека так себе, и сборка мусора не очень. Время покажет.

Алсо, годная статья в тему: http://ridiculousfish.com/blog/posts/go_bloviations.html
>> No.27273 Reply
>>27272
> точки с запятой, которые как бы есть, но их как бы нет
Как будто что-то плохое. Ящитаю, в хорошем языке точка с запятой в конце инструкции должна служить для разделения строк и носить исключительно рекомендательный характер. Как в ActionScript 3, например.
>> No.27274 Reply
>>27273
Так-то оно, может, и так (хотя Луа, например, вообще без этого обходится). Но, блджад, язык, в котором точки с запятой обязательны, но вставляются компилятором автоматически в конце каждой строки — это пиздец, ящитаю. Могли просто сделать перенос строки символом разделения инструкции с фишечками типа отслеживания скобок и запятых, чтобы можно было писать
array2d := {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
}
, так нет же! Выбрали самый лёгкий и тупой путь, блджад.
>> No.27275 Reply
>>27272
> использование одновременно «:=», «=» и «==»
Зато никакой двусмысленности операций.
> сам Гугл как бы сначала задумывал его как «новый Си»
Скорее, как наследник limbo в этой роли.
>> No.27276 Reply
>>27274
> Выбрали самый лёгкий и тупой путь, блджад.
When in doubt, use brute force.
Но да, с простотой парсера они перестарались.
>> No.27277 Reply
>>27271
Вот если бы гугль сделал компилируемый в нативные бинари (ну и в яваскипт), с опциональной типизацией (и следовательно контрактами), перегрузкой операторов, параметрическим полиморфизмом, сеттерами/геттерами кофескрипт, то этот ЯП стал бы вообще пушкой.
>> No.27278 Reply
>>27274
Кстати, немного магии для тебя:
http://play.golang.org/p/kbDIcyfeRi
>> No.27279 Reply
>>27277
> перегрузкой операторов
Нахуя?
>> No.27280 Reply
>>27274
Немного магии для тебя:
http://play.golang.org/p/kbDIcyfeRi
>> No.27281 Reply
>>27279
Ну например заводишь ты класс для комплексных чисел, почему бы не перегрузить соответствующие арифметические операторы? Или там оператор [], вдруг припрет сделать хитрую логику записи или чтения этой штуки.
>> No.27282 Reply
>>27281
> класс для комплексных чисел
Во-первых, нахуй они нужны. Во-вторых, единственное место, где я могу придумать применение кастомным операторам это как раз эти комплексные числа. Поэтому почему бы просто не добавить их к базовым типам. Но так как они нахуй не нужны, то можно и не добавлять.
> ? Или там оператор [], вдруг припрет сделать хитрую логику записи или чтения этой штуки.
Нехуй. Понапридумывают всяких стрелок дибильных со скобками, логику которых только сам автор будет понимать (это в лучшем случае), а кому-то это потом поддерживать придётся.
>> No.27283 Reply
>>27282
Ты же ведь троллишь, правда?
Не поверишь, но ещё порой складывать/умножать нужно, например, векторы.
Ну и введение операции сравнения — тоже, в общем-то, перегрузка, а оно вообще много где нужно.

По теме — зачем Go, когда есть D? Если уж выпендриваться, то делать это на действительно удобном языке.
>> No.27284 Reply
>>27283
> на действительно удобном языке
> D
>> No.27285 Reply
>>27283
Вектор - это банальный массив же. Я их ещё на асме успешно складывал и скалярно-векторно перемножал.
>> No.27286 Reply
Если я захочу подробить числа, то использую язык, которы лучше для этого подходит и имеет соответсвующие библиотеки, чтобы свои велосипеды не делать.
>> No.27287 Reply
>>27284
Ну не Go же.

>>27285
А кто спорит? Только вот мне кажется, что v1 + v2 — это всё-таки чуточку удобнее, чем addVectors(v1, v2).
>> No.27291 Reply
>>27287
в сишке это реализованно через жопу. Должна быть нормальная полиморфическая функция, а не метод левого класса.
>> No.27296 Reply
>>27283
Драчую D. Няшная дишечка.
>> No.27299 Reply
>>27296
ДНИЩечка.
>> No.27303 Reply
>>27287
> v1 + v2 — это всё-таки чуточку удобнее, чем addVectors(v1, v2)
А что, есть разница?
>> No.27304 Reply
>>27303
Да. Именно из-за этой разнциы никто не пишет (addVectors v1 v2)
Это не совсем лишп. Любой ЯП транслируется в синтаксическое древо, которое можно записать в формате списка списков списков
>> No.27306 Reply
File: waynes_haskell.jpg
Jpg, 12.95 KB, 379×263 - Click the image to expand
edit Find source with google Find source with iqdb
waynes_haskell.jpg
>>27282
> 2012
> создатели языка настолько тупы что не могут осилить элементарный парсинг
! <> <+> </> <$> // >< .: <$$> ∅ & .= <?> <||> \\ |> # $$ *. <-> <. <//>
<| <|> ==> >. ||. ∈ ∉ !! &&. ++ +++ /=. <=. =: ==. >=. ∋ ∌ ∩ ∪ .|. :->
<: ? ∆ ∖ .&. .* .-. <&> <.> << === ?? @@ \/ ^^ |+ |- ||| ~~ !!! !> !? ##
$+$ += +> -<- .*. .:? .<. .==. .>. /=? /\ :- :> :~> <$?> <+< <=> <=? <?
<|?> =. ==? =~ >-> >=? >? @# ^ ~> ¬ ∘ ∧ ∨ ≡ ≢ ⊂ ⊃ ⊄ ⊅ ⊆ ⊇ ⊈ ⊉ !: $# $>
$~ % %> && &&? &= ** | + --> ->- -| . .!= .!=. .&&. .&.? .*> .+ .++.
.+. ... ./. ./\. .:: .<=. .=. .=> .>=. .\/. .| .||. :* :+ :. := :=: <*.
<> <++ <++> <..> <:> <<|> <== <||> =$= >+> >=> >>>= >|< ?> ?>= @@@ ^#
^$ ^: ^^^ |* || ||* ||+ ||? ~: ~? ≠ ≮ ≯ ⊕ ⧺ !$ !$? !. !=. !>>= #! #!!
#~~ $ $! $$$ $$$? $$+ $$++ $$+- $$= $- $. $.// $/ $// $= $=! $? $| $~!
%% %&& %+ %/= %: %< %<= %== %>= %|| &#& &&& &+ &. &.// &/ &// &=# &> &@
&| * ! & &&& & * */ /* *// //* ***|
*| *|| ||* / /* /* // //*
//* | |* |* || ||* ||* . /* /*
*// //* > |* |* *|| ||* / /* /** /*** //
//* //** //*** <<< = =. =>* > >>>* ? @ ^ |** |**
|*** || ||* ||** ||*** +% ++. ++> ++>> ++@ +/+ +: +:+ +=. +>>
+@ +^ +| - -!- -$ -->> -/\- -: -< -<< -<=- -=. -=> ->> -?- -?-> -?> -?>>
-@ -\/- -^ -|- -~> .! .# .$. .- .--. .->. .... ./ ./= ./=. .:. .::: .<
.<<. .<= .== .>>. .@ .@$ .@~ .\. .|| .~ .~. / /+/ /- /. /<-. /=: />/ /^
/| /~ /~? :*: :+: :-: :<-> :<: :<=: :<> :<~> :=+ :><: :~ <! <#$> <$| <%
<&&> <* <+ <-$ <-- <-. <-: </=? <<! <</ <<: <<< <<? <<\ <<| <<~ <=! <=:
<==? <=@ <=@@ <>>= <?< <??> <@ <@> <@@ <~ =$ =$$= =*= =/= =< =<< =<<!
=<<< =<= =<>= =<? ==! =>> =~= =≪ >! >$$< >$< >*> >-- >-< >: >:> >=! >=:
> == >===> >=>=> >=@ >=@@ >> >>-> >>. >>= >>=# >>== >>=\/ >>=|\/ >>=||
> > =||| >>> >>@ >?> >@ >@@ >||< ?! ?+ ?/= ?: ?< ?<= ?= ?== @! @= @==? @=?
@? @?= @?== \== ^% ^-^ ^. ^>>= ^@ ^^. |#| |$> |*| |-> |-| |. |/ |// |:
|<- |= |=> |=| |? |@ |\ |\\ |||| ~/= ~== ~=? ~?= ~|||~ ~||~ ~|~ ~~# ~~>
~~? ~~~> · ·× × ×· ÷ ⇒ ⇔ ∀ ∃ ≫ ≫= ⊛ ⊥ ⊨ ⊭ ⊲ ⊳ ⋅ ⋈ ⋘ ⋙ ▷ ◁ ★
>> No.27307 Reply
File: xhibit042707_nc.jpg
Jpg, 79.50 KB, 475×715 - Click the image to expand
edit Find source with google Find source with iqdb
xhibit042707_nc.jpg
>>27304
> списка списков списков
>> No.27308 Reply
>>27307
икзибит и рядом не валялся с рекурсивными типами
>> No.27309 Reply
>>27308
А фрактальный икзибит?
>> No.27310 Reply
>>27304
> Именно из-за этой разнциы никто не пишет (addVectors v1 v2)
Кому надо, тот пишет. Для каждого класса задач создан свой язык со своими правилами. Есть си, есть php, есть джаваскрипт, есть хаскель, есть 1С. Появятся новые задачи - возникнет и новый язык.
(scanint a)
(:= b 50)
(+= a 2)
(:= a (+ a b))
(print a)
Вполне читается.
>> No.27311 Reply
>>27310
scanint(a);
b := 50;
a += 2;
a := a + b;
print(a);
>> No.27316 Reply
>>27310
> (:= a (+ a b))
Спасибо, посмеялся.
>> No.27317 Reply
>>27282
> Во-вторых, единственное место, где я могу придумать применение кастомным операторам это как раз эти комплексные числа.
векторы, матрицы, какие-нибудь специально рассмотренные функции, многочлены. Добавлять к базовым типам то, что можно реализовать через общие механизмы, да ещё экзотическое, не синтаксический сахар ли?
>> No.27323 Reply
>>27317
> векторы, матрицы, какие-нибудь специально рассмотренные функции, многочлены
математическое числодробление - узкий класс задач, не стоит ради него позволять всем писать неочевидный код с кастомными операторами только.
>> No.27326 Reply
Что за идиотизм рассуждать о синтаксисе языка? Какая разница, нужно ли расставлять точки с запятой или писать end в конце циклов? Вам не похуй?
>> No.27327 Reply
>>27326
Нет, потому что в этом вся суть языков.
>> No.27337 Reply
>>27327
то есть c++ и java это один язык?
>> No.27338 Reply
>>27310
самое стремное, что это валидный код на лиспе. Но как по мне, писать 2xx+3*x-4 приятнее, чем
(+ (* 2 (* x x)) (- (* 3 x) 4)), которое мало какой компилятор попытается преобразовать к
(+ (- 4) (* x (+ (* 2 x) 3))
>> No.27339 Reply
>>27337
У них разный синтаксис.
>> No.27342 Reply
>>27339
в чем различие?
>> No.27344 Reply
>>27326
Язык должен быть удобный, лаконичный и хорошо читаемый. И перегрузка операторов - это ж уже семантика даже пожалуй, нет? С одной стороны, если разраб написал вместо понятных слов какие-то плюсы с минусами - это вводит кучу путаницы. С другой, для каких-то сучаем a+b куда лучше чем summ(a,b), разве нет?
>>27323
Ещё * полезно же перегружать, можно создать свой итератор или умный указатель. [] для индексации полезно перегрузить. Но вот в C# вроде и то и другое как-то по-своему сделано, без возможности перегружать что попало.
> не стоит ради него позволять всем писать неочевидный код
Может просто нужно зать, где это нужно использовать, а где нет? Так руки чешуться использовать все возможности синтаксиса разом?
>> No.27349 Reply
>>27342
Почти во всём.
>> No.27354 Reply
>>27338
> 2xx+3x-4
(+ (* 2 x x)
   (* 3 x)
   -4)

Писать мне тоже первое приятнее, но чем сложнее выражение, тем проще становится читать древовидную префиксную форму в сравнении с инфиксной.
>> No.27375 Reply
Я ничего не понял, зачем у вас всех скобки в префиксной нотации?
>> No.27376 Reply
>>27375
ЛИШПОЛЮБЫ не могут без СКОБКОЛОЖЕСТВА же.

И вообще, тред надо возвращать к теме ОП-поста, иначе, как подсказывает мне капча, «дальше жертва».
>> No.27381 Reply
>>27375
потому что это списки и с ними так удобнее изголятся.
>> No.27384 Reply
>>27375
Потому что s-expr.
>> No.27415 Reply
>>27271
ОП, забей на неизоморфный (и как следствие) мертворожденный Go. Учи лишпик.

c:простите принимал
>> No.27450 Reply
> неизоморфный (и как следствие) мертворожденный Go
Ahaha oh wow. Неизоморфный чему?
>> No.27451 Reply
>>27450
probably he meant: негомоиконичный
>> No.27453 Reply
>>27415
> забей на неизоморфный (и как следствие) мертворожденный Go. Учи лишпик.
Смотри, ОП, если будешь учить лишп - станешь таким же ебнутым.
>> No.27460 Reply
>>27415
BLJAD, у меня сейчас другое в голове. Негомоиконичный, конечно.
>> No.27461 Reply
>>27460
Гомоиконы - это к православным.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]