LINUX.ORG.RU

Опубликован выпуск «Learning Go» 0.3

 ,


0

3

Язык Go ещё очень молод и динамично развивается. Несмотря на то, что язык отлично документирован на golang.org, чувствуется недостаток книг.

На сегодняшний день «Learning Go» — наиболее объёмная книга по этому перспективному языку программирования, хотя, как пишет автор, Miek Gieben, это скорее слепок текущего состояния, чем её финальная версия.

Скачать

>>> Подробности



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

>> 1. пишут некоторые низкоуровневые вещи вроде драйверов

SMTP-серверы низкоуровневые? v_v

Пункт 2 из моего списка?

Как вообще может быть иначе, когда целые поколения были выращены с идеей в голове что дескать С это венец эволюции?

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

> SMTP-серверы низкоуровневые? v_v

Вот для сервера Go, пожалуй, подойдет :)

И нет, SMTP-сервер не надо писать на Си в наше-то время :)

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

> Как вообще может быть иначе, когда целые поколения были выращены с идеей в голове что дескать С это венец эволюции?

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

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

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

Примеры языков, позиционирующих себя как замену C, в студию.

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

> Примеры языков, позиционирующих себя как замену C, в студию.

задайте этот вопрос rtvd - это он, а не я, утверждает, что С нужен только для драйверов и т.п.

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

> это он, а не я, утверждает, что С нужен только для драйверов и т.п.

Место Си и в самом деле только в написании драйверов (и даже это спорно). Проблема только в том, что пока не придумали адекватной замены, и приходится мучаться с Си :)

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

> Место Си и в самом деле только в написании драйверов (и даже это спорно). Проблема только в том, что пока не придумали адекватной замены, и приходится мучаться с Си :)

согласен как с первым утверждением, так и со вторым, поэтому мне и интересно выслушать мнение rtvd - он же считает, что адекватные замены есть, может он расскажет какие их них лучше и почему они еще не вытеснили С

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

>Какой язык считается интересным?

Вот Scala, например, мне интересна. Гибриды вообще рулят. И именно это даёт мне основания полагать, что она никогда не догонит Яву по популярности.

C# в первую очередь придумывали как язык для практического применения а не как «еще один интересный язык для окодемигов».

Вот именно. Он может быть очень практичным, но восхищения, как у нашего толстячка, вызвать абсолютно не способен. Это ширпотреб. И специально хочу обратить внимание, что эта оценка с моей стороны вовсе не является негативной.

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

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

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

Си-синтаксис: C, C++, Obj-C. Java, C#, D, черт побери даже JavaScript, Vala в конце концов, и о ужас - Verilog HDL - даже в нем нормально переменные определяются, продолжать?

А Go? ":=" - зачем? var - лишнее, ну блевотный же язык, лишь бы не так как у всех сделать

I-Love-Microsoft ★★★★★
()

Эксперты лора. Как всегда в своем репертуаре.

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

ну блевотный же язык, лишь бы не так как у всех сделать

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

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

> десяток дисеров на темы вроде «новые методы написания пузырьковой сортировки»?

Думаю такое даже в заборостроительных не пишут.

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

> Как вообще может быть иначе, когда целые поколения были выращены с идеей в голове что дескать С это венец эволюции?

Не видел этих поколений. Видел поколения, понимающие, что С --- это переносимый ассемблер.

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

> Как вообще может быть иначе,

Вы не стесняйтесь, предложите иначе.

sv75 ★★★★★
()

Еще никто не вспомнил про Лисп? Мда... Лор уже не торт.
Нужно пользоваться хорошими языками ... ааа ниосиляторы?

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

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

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

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

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

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

К сожалению я не знаю определения выражения снисходительная улыбка :) Просто поясню моё мнение: Действительно смешно, когда народ плюет и изрыгает прочие злословия на C, на котором написано и продолжает развиваться ядро его любимого дистрибутива и пользователей этого языка, которые продолжают делать своё дело. При этом тем же самые злословящие товарищи, восхваляющие в противовес свой любимый язык, ничего на нем сделали для своего дистрибутива. Браво друзья! Браво! Чем то напоминает «Мартышка и зеркало». Не находите?

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

var s string = «hello»

Объявление переменных капец полный.

Можно ещё так:

s := «hello»

:-)

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

Извините пожалуйста, видно эмоции разыгрались.

Vernat ★★
()
Ответ на: комментарий от I-Love-Microsoft

А Go? ":=" - зачем? var - лишнее

var s1 string = "hello"
var s2 = "hello"
s3 := "hello"
// будут созданы три сроковые переменные
mors
()
Ответ на: комментарий от pevzi

Если сравнивать с Си/Си++:

  1. Неявная реализация интерфейсов — если объект имеет набор методов описанных в интерфейсе, то он автоматом считается объектом этого интерфейса. (так называемый duck typing)
  2. Функции/методы могут возвращать более одного значения
  3. Сборщик мусора
  4. Типизированные каналы. Аналог пайпов, но только строго типизированные. + можно явно указать размер буфера + удобный синтаксис для работы (операторы -> и <-) + по каналам можно передавать другие каналы :)
  5. Пакеты (как в Java, только без строгих требований к размещению файлов)
  6. ОЧЕНЬ ОЧЕНЬ быстрая компиляция
  7. Поддерживает замыкания
  8. Горутины — парраллельно работают, но быстрее создаются и памяти меньше кушают чем настоящие треды
  9. Нет шаблонов
  10. Нет исключений, но есть panic
mors
()
Ответ на: комментарий от aho

> вы так говорите, будто альтернативные языки все поголовно появились вот только вчера, пора бы им уже похоронить все эти поделия макак на С, благо на элитарных языках пишут элитарные программисты, или макаки так сильно массой давят?

Не знаю, что такое «элитарные программисты» и «элитарные языки». Ответка тоже бывает элитарной?

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

> Не знаю, что такое «элитарные программисты» и «элитарные языки».

не С и не макаки конечно

Ответка тоже бывает элитарной?


я ваш жаргон не понимаю

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

>> будто альтернативные языки все поголовно появились вот только вчера

Примеры языков, позиционирующих себя как замену C, в студию.

Странный вопрос. Замена С в каком случае? В коде для драйверов? Ну тогда нет, хорошей замены в этом случае пока нет.

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

> в С# нет RAII, так что сиди унылый и не гавкай.

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

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

>> Не знаю, что такое «элитарные программисты» и «элитарные языки».

не С и не макаки конечно

Вообще-то есть просто нормальные :)

Ответка тоже бывает элитарной?

я ваш жаргон не понимаю

«элитарный язык» это уже не мой жаргон, а Ваш. Так что Вам и объяснять семантическую разницу.

----

Ну а если понизить уровень флейма, то IMHO наиболее адекватный подход - писать код преимущественно на высокоуровневых языках, иногда добавляя чуточку С в местах, где это имеет смысл (сторонние библиотеки, всякая низкоуровневая экзотика и т.д.).

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

> Неявная реализация интерфейсов — если объект имеет набор методов описанных в интерфейсе, то он автоматом считается объектом этого интерфейса. (так называемый duck typing)

Ахренеть. Duck typing - это цитата из доки по Go?

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

А какой смысл? Наплодить объектных обёрток вокруг posix API? Смешать С++ стиль и С-стиль? Обернуть все errno выбросом исключений и написать много ненужного кода для этого? Ну будет работать ещё медленее, это да.

В общем сначала надо увидеть сервер на максимально чистом С++, возможно смысл и есть.

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

> erlang

Пожалуй даже этот вариант интереснее С++. Но надо замерять.

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

> Наплодить объектных обёрток вокруг posix API? Смешать С++ стиль и С-стиль? Обернуть все errno выбросом исключений и написать много ненужного кода для этого?

У тебя очень странные понятия о написании серверов на Си++. Того, что ты написал, делать не нужно. Нужно использовать возможности Си++ (параметризуемые типы, исключения, ООП) для написания краткого и надежного кода.

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

А какие там свои исключения, если весь их источник в errno?

Коллекций (куда еще давать типизированные типы?) там не так много, чтобы секс с макросами rb_tree / list был чудовищно изнурительным, а на -O1 разница с stl, если я правильно помню, отсутствовала.

ООП там пихать я не знаю куда, честно говоря. Гуя нет. Полиморфизм не заметен. Одно состояние --- состояние текущей сессии.

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

В общем, на какие сурсы смотреть в качестве кошерного примера сервера на С++?

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

> ООП там пихать я не знаю куда, честно говоря. Гуя нет. Полиморфизм не заметен. Одно состояние --- состояние текущей сессии.

Хелловорлд?

В общем, на какие сурсы смотреть в качестве кошерного примера сервера на С++?

Monotone

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

> Хелловорлд?

«Много-много вызовов POSIX API»

Monotone

The focus of the project is on integrity over performance. (c) Wikipedia

Не пойдет.

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

>> Хелловорлд?

«Много-много вызовов POSIX API»

Ты разберись, нужно сервер написать или POSIX API освоить.

The focus of the project is on integrity over performance. (c) Wikipedia

И что?

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.