LINUX.ORG.RU
ФорумTalks

Наносит ли урон мозгу perl?

 , ,


0

1

В общем на данный момент я учу perl с нуля (опыта программирования практически не было). Перл очень крут (пока что), но есть ли смысл на него тратить время (нет желания прямо завтра выйти на фриланс, есть желаение стать полу-бородатым гиком)? После перла (или то, что вы предложите как первый ЯП, но не ООП) хочу уйти в хаскель на год (+ обмазаться математикой). На хаскель уйду 100 процентов, так что надо что то для введения в суть программирования (ибо писать на функциональщине как на первом ЯП говорят - не очень хорошо). Затем хочу податься в веб (бэкэнд) и обосноваться в руби или си-сярпе (где будет больше удалёнки на тот момент).

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

Перемещено true_admin из development

Какие ваши советы?

вдоль

Difrex ★★★★
()

Какие ваши советы?

Перестань бредить, превращать Development в толксы и выучи уже хотя бы python.

А может пришла пора на ЛОРе сделать раздел Career?

t184256 ★★★★★
()

Окунуться в практику

Лучший способ учиться что-то делать это делать это что-то. Лучший способ учиться программировать на Perl'е — программировать на Perl'е. Есть какие-то реальные задачи, которые вы хотите решить используя Perl? Решайте. Можете помочь свободным проектам — помогайте. Можете продать результат своего труда — продавайте. Сталкиваетесь с проблемами Perl'а? Переходите на C, Haskell, Erlang, Go, whatever.

Camel ★★★★★
()

вначале надо учить asm, потом C

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

хаскель учи после С++ и Rust

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

Не забывай привести меня как контрпример.

Eddy_Em ☆☆☆☆☆
()

1) когда занимаешься тем, что нравится - прогресс быстрее идет
2) для того чтобы стать в чем-то крутым надо много практики
3) если нравится Perl - учи Perl, потому, что (1)
4) для понимания основ программирования лучше взять все же SICP
5) Haskell - это больше для тех кто упарывается по математике как науке, советовал бы с ним не торопиться (как 3-4-й язык - норм)

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

Haskell - это больше для тех кто упарывается по математике как науке

Не знаю, откуда пошло это убеждение, но который раз уже вижу.

yoghurt ★★★★★
()

Наносит ли урон мозгу perl?

Нет. Наносят урон мозгу твои треды.

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

Every function in Haskell is a function in the mathematical sense (i.e., «pure»).

кого еще это волновать должно?

PS заметь, я не сказал математиков

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

Ну вот меня как плюсиста, который то и дело работает со всяким legacy, чистота и предсказуемость кода и контроль сайд-эффекторв ещё как волнуют.

А вот с математикой не дружу почти

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

тесная работа с сишными указателями вызывает шизофрению

anonymous
()

Наносит ли урон мозгу perl?

Ну, разве что привыкание к плохим практикам, а так всё-таки не Cobol.

Debasher ★★★★★
()

Наносит ли урон мозгу perl?
s3lfstyle  IT-Хипстер. Юзает {atom|Sublime}

На хабр!

Deleted
()

сносите тему и баньте дегена

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

меня как плюсиста

почему же не хаскелиста?

меня [..] который то и дело работает со всяким legacy, чистота и предсказуемость кода и контроль сайд-эффектов ещё как волнуют

в математическом смысле? о_О

shty ★★★★★
()

Perl один из лучших вариантов для скриптоты и очень хорош в умелых руках (99% критиков не общались с профи, не видели качественный код, «не умеют готовить» этот ЯП). Поэтому в скриптовой нише может пригодиться.

Если не нужна скриптота, но нужен императивный ЯП для практики, начинай с JS. В браузере отктрой repl и пиши код (в firefox хорош ScratchPad). При желании можно осилить аппликативный подход, всякие лямбды, frp.

На хаскель уйду 100 процентов

Может проще OCaml? Меньше гемора с IO, но функционально.

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

почему же не хаскелиста?

Потому что за деньги я пишу на плюсах

в математическом смысле? о_О

В самом рядовом, практическом.

yoghurt ★★★★★
()

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

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

Это звучало так, словно можно выучить С++

на это и рассчет если сразу не понятно ;)

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

В самом рядовом, практическом.

А в рядовом смысле помогает мало, так как с точки зрения хаскела любой вызов внешней функции является сайд-эффектом.

monk ★★★★★
()

Затем хочу податься в веб (бэкэнд) и обосноваться в руби

А сразу нельзя?

Nucleus-
()
Ответ на: комментарий от monk

А в рядовом смысле помогает мало, так как с точки зрения хаскела любой вызов внешней функции является сайд-эффектом.

У вас есть опыт написания программ на хаскеле, чтобы делать подобные заявления?

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

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

kto_tama ★★★★★
()

Раз собираетесь переползать на руби — учили бы сразу руби. Они с пёрлом и питюшёном примерно из одной ниши (скриптота, быстрое несложное гуешлёпство, веб-бекенд), и по парадигме сходны.

MiniRoboDancer ★☆
()

Твоему уже не нанесёт.

Xellos ★★★★★
()

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

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от shty

больше для тех кто упарывается по математике как науке

Ага, если ты хочешь, чтобы законы арифметики при выплате твоей зарплаты продолжали действовать — ты упарываешься по математике как науке.

buddhist ★★★★★
()

Да ты же упорот! Сначала выбирал редактор, теперь выбираешь ЯП, потом собираешься выбрать направление.

веб (бэкэнд)

Сервер-сайд, клиент-сайд ни на какие бакенд-фронтенды веб не делят.

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

И как вам там? Расскажите.

Вы знаете, неплохо, не приводишь в пример вещи, о которых знаешь «понаслышке», позволяет в жизни избежать многих непоняток.

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

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

Мне кажется правильной идея учить вместе язык программирования, теорию алгоритмов и основы устройства железа/оси.

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

Лет 10 назад я бы выбрал ассемблер и Паскаль, но потребность в первом со временем поубавилась, а последний сдох даже для академического применения. А сишечка как раз где-то между ними по степени абстракции от реального положения дел :)

melkor217 ★★★★★
()

Какие ваши советы?

Выложить пароль, уйти в IRL, найти девушку. И не возвращаться, пока психика не окрепнет. Ты бы еще лисп сюда добавил.

iVS ★★★★★
()

писать на функциональщине как на первом ЯП говорят - не очень хорошо

а никто пока не пробовал, можешь быть первопроходцем

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

а так уж он устроен, что хаскелль, подключая внешнюю функцию, не сможет предугадать, будет ли она иметь побочные эффекты или нет.

sevenredlines
()

Непоправимый.

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

хаскелль, подключая внешнюю функцию, не сможет предугадать, будет ли она иметь побочные эффекты или нет.

На самом деле, конечно можно сделать костыль. Но выглядит ужасно:

import Foreign
import Foreign.C
import System.IO.Unsafe as Unsafe

foreign import ccall "touppers" c_touppers :: CString -> IO ()
toUppers :: String -> String
toUppers s =
  Unsafe.unsafePerformIO $
    withCString s $ \cs ->
      c_touppers cs >> peekCString cs

А вторая проблема — утечки памяти. Например

  duration = 5000000
  period = duration `div` 10

  data State = St !Bool
  toggle (St b) = St (not b)

  main = do
    putStrLn "Leaky started."
    rslt <- duty (St False) 0
    (return $! rslt) >>= return
    putStrLn "Finished."

  duty :: State -> Int -> IO State
  duty state i = do
    let state' = toggle state
    if 0 == i `mod` period then return () else return ()
    if i < duration then duty state' (1+i) else return state'
сжирает память пропорционально величине duration.

monk ★★★★★
()

Наносит ли урон мозгу perl?

Если не смотреть чужие (или свои древние) скрипты и не пытаться разобраться что и как в них работает - то нет. Кодить безопасно.

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

Может проще OCaml? Меньше гемора с IO, но функционально.

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

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

В самом рядовом, практическом.

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

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

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

не вижу связи )) если некоторый мумба-юмба не в ладах с матаном - это не значит что на него небо завтра упадет

shty ★★★★★
()
14 октября 2015 г.
Ответ на: комментарий от s3lfstyle

на инглише

Это проблема?

по 1.9 версии

Вы основы язык изучать собрались или плюшки конкретных версий? 1.9 ещё не настолько устарела.

( bodqhrohro aka MiniRoboDancer)

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