Учи лучше Хаскель - то отточен гораздо лучше, долгими десятилетиями и имеет меньше архитектурых косяков.
Восторгаться красотой языка ради самого языка - это удел новичков.
Не закапывайтесь в накоплении знаний, в изучении 100500 языков. Прикладывайте ваши знания к настоящему делу.
Путаетесь. Временем проверен совсем не язык, а компилятор.
Вы вызываете внешнюю команду cat, поэтому то, что идет через конвейер | относится к внешней команде, а не вашему циклу. Отсюда "echo 1 freePipe" будет выводить внутреннюю переменную процесса cat, а не вашего цикла.
Не выдумывайте. Это всего лишь компилятор.
Cgo enables the creation of Go packages that call C code.
Хочешь уменьшить размер бинарного файла, используя тот же метод как и Си - с dll/so - используй один компилятор.
Доводы кончаются? Начали с размеров файлов, атеперь вам многопоточность не нравится?
Не выдумывайте, то, чего не знаете.
Но тем не менее, вам никто не мешает использовать раздельные пакеты и на серверах, возможность это в компиляторе присутствует. Будете единственным оригиналом.
Разумеется, если ты хочешь использовать модель многопоточности Go то это должны быть пакеты именно на Go
А вы прочитали раздел "требования к железу" к Plan 9?
Все до единой Linux какими бы непохожими они не были - строго говоря не ОС, а надстройки над общим для всех ядром Linux
Использование компилятора cgo вместо компилятора go позволяет получать маленькие программы, написанные на Go, которые также как и программы на Си, будут требовать для своего запуска библиотек *.so/*.dll
Такие распростаненные ОС как VmWare ESX или MacOSX или Solaris - тоже далеко не на всяком железе запускаются.
А у меня вот не завелась на ноутбуке MacOSX.
Стив Джобс плохой или все же тот, кто не смог запустить его ОС недостаточно квалифицирован?
Роб Пайк плохой или все же тот, кто не смог запустить его ОС недостаточно квалифицирован?
А чем ты объяснишь мотивацию независимых от Google крупных корпораций?
Почему "не пошла"? Plan 9 уж лет 30 как существует.
Программы, написанные на Си, маленькие только с одного бока - они тянут за собой при запуске здоровенные библиотеки *.so/*.dll.
Докажи что у C все хорошо со стандартизованностью.
Скопилируй под FreeBSD 10
Это вполне рабочий проект - используется в Yandex в production.
На Go даже более объемные вещи компилируются с полпинка.
Фактически, MSVC - один из самых значимых компиляторов.
Кроме формальных стандартов есть еще и неследование компиляторов этим стандартам.
struct x {
int x;
};
C Go подобное проходит с полпинка. И даже под MacOSX и Windows.
Никакую шлифовку С годами не проходил. Так как должен был сделовать единожды придуманном правилам.
И сделали это весьма неаккуратно. В результате порождена целая плеяда подстандартов - и в настоящее время одна и та же программа может даже не скопилироваться на различных компиляторах.
Пожалуйста, скомпилируйте это под FreeBSD 10
Requirements
C++11/14/17 compiler (yep, using C++17 opens additional functionalities).
Boost.Thread - for TLS.
Ага. Отстрелить себе ногу с помощью Си - расхожая программистская пословица.
Сам же язык весьма и весьма ограничен в изменениях - иначе не будет совместимости.
Тому кто всю жизнь пишет ХелоуВорды - не понять реальные проблемы.
Большие серьезные программы читает множество людей.
Программные библиоки - читает множество людей.
Программу нужно писать так, чтобы ее легко читали другие люди - твои коллеги.
Вы, очевидно, не работали в коллективах, где уделяют внимание взаимозаменяемости программистов
Во многих компаниях есть еще более жесткие правила - например, обязательное именование переменных в camelCase.
У нас пока программа не пройдет проверку линтерами, которые еще более жесткие ограничения ставят на стиль - ты просто не имеешь право претендовать на зарплату.
Убедили посмотреть в сторону Go, какие там проблемы могут возникнуть
package main
import "fmt"
func f() int
{
return 1
}
func main() {
fmt.Println(f())
}
go fmt
[guest@localhost crossfunc]$ echo "0 0 5 5 0 0 -2 -2" | ./crossfunc
Прямые параллельные
[guest@localhost crossfunc]$
Она не попадает под условие для CD по ординате. 0 <= 4.5 <= 4. Это неверно.
Немного другой способ, значения нормализованы.
min(A.x, B.x) <= x <= max(A.x, B.x)
AB A(0; 0) B(10;10)
CD C(5; 4) D(9; 0)
Я думаю, если тебе для этого надо компилятор специальный (в котором это даже отменить нельзя), то не так уж всё прекрасно в королевстве датском.
А у тебя другие разработчики так же пишут, как и ты? Прямо сидите в клетках и пишете всё так, как скажут? Запомни, программирование - это свобода. А когда ты пишешь по указке всегда и всё время, то твои проекты рано или поздно закрывают как нерациональные. Ты писал что-то пять лет, а какой-то менеджер решил это выкинуть - ну, я поздравляю тебя. Ты - как бомж, собирающий картон на свалке. Твой код - это просто картон, который нахрен никому не нужен. Ну, выплатят копейки тебе, но, по сути, что ты сделал за эти пять лет?
Да мне похрену, как ты не можешь понять. Я запустил свою программу и пользуюсь ею годами. Кому-то ещё передал и люди пользуюутся ею и дела свои решают со стократной скоростью. Вот я тебе привёл jabber в пример - это вообще свободная программа, никакие линтеры там не нужны, а работает и безотказно. А другой парень придумал язык, на котором всё это написано, тоже без всяких линтеров. Открой для себя программирование. Программирование - это создание программ, а не когда ты там кому-то что-то на блюдечке преподносишь и тебя хвалят.
Этот fmt практически никак не настраивается. Это программа, она должна настраиваться по максимуму, но они не стали её делать такой, они её быстро выпустили, чтобы было похоже на правду.
C и сегодня актуален, не зря сам компилятор Go сначала был написан именно на C.
Длинные, километровые строки повышают производительность труда? По-моему, их, наоборот, сложно воспринимать. А когда ты сидишь и думаешь, куда поставить скобку у функции - это как-то не того. Когда синтаксис от кода отвлекает. Нет, ты должен думать, куда поставить скобку, а не как алгоритм оптимальнее реализовать. А ты не пробовал перебрать двумерный массив двумя циклами for? Там очень много букв для этого надо писать. Кстати, на Go очень много надо вручную писать, потому что готовых вещей нет, прямо как в C было всегда, странное совпадение, да? Вроде всё так современно, а вроде и не очень. Прямо такой граф в трусах и шляпе. С одной стороны - новейшие интерфейсы, прорывная технология, с другой стороны - нельзя отнаследовать какой-нибудь сложный тип. Хочешь отнаследовать - пиши новую сложную копию. Исключений нет - это прорыв, но тут же надо сидеть и думать, как обработать ошибку, которой там нет вообще (затычки в виде подчёркиваний остаются по всему коду).
Да-да-да, не решать одну и ту же проблему, особенно простой перебор какой-нибудь чего-нибудь. Ввод строки из консоли. Ну, напиши простую grep на Go, выложи код, посмеёмся вместе (если тебе начальник разрешит твоё время потратить).