Escolha do SO para desenvolvimento funcional [fechado]


9

Sou principalmente um desenvolvedor .NET, então normalmente uso o Windows / VisualStudio (isso significa: sou mimado), mas estou gostando do Haskell e de outros idiomas (principalmente funcionais) no meu tempo livre.

Agora, para Haskell, o suporte ao Windows está ok (você pode obter a Plataforma Haskell), mas ultimamente tentei obter um ambiente básico de Clojure / Scheme configurado e isso é apenas uma dor no Windows.

Então, estou pensando em experimentar outro sistema operacional para obter melhores ferramentas e suporte a idiomas. Claro que isso me deixa com o MacOS ou alguma distribuição Linux.

Eu nunca usei o MacOS antes e, é claro, o Linux seria mais barato (gratuito) e acho que não consigo inicializar em paralelo o MacOS no seu PC-Hardware normal (você pode?). MAIS: Eu não tenho idéia das ferramentas que você pode usar nesses (para mim) SOs estrangeiros.

Para resumir: quero explorar mais Haskell, Clojure, Scala, Scheme e, é claro, preciso de pelo menos boas ferramentas para JavaScript / HTML5 / Css. O suporte ao .NET / Mono / F # seria ótimo, mas para isso ainda terei minha inicialização do Win7.

Então, eu gostaria de saber: - qual é o seu sistema operacional preferido, distribuição (o Ubuntu é viável?) - que editor / IDE você está usando

Obrigado pela ajuda!

PS: Não tenho certeza se este é o lugar certo para esta pergunta, mas certamente espero que sim - se não, por favor, deixe-me saber para onde devo mudar isso (StackOverflow não parece ser o lugar certo IMHO)


Tudo é muito problemático no Windows, a menos que você instale o Cygwin. Depois de adquirir o Cygwin, não haverá incentivos para se deslocar para o Windows.
— SK-logic

8
@ Sk-logic: Cygwin torna o uso do Windows um pouco menos doloroso, mas eventualmente alguém pode querer ter a coisa real e mudar para um sistema operacional semelhante ao Unix. ;-)
— Giorgio


2
@artec: Eu não acho que isso seja uma duplicata: esta pergunta pergunta especificamente sobre o uso de linguagens de programação funcional.
— Giorgio

3
Comece com um bom linux como Fedora, Mint ou Ubuntu antes de aumentar sua carga em um Mac.
— Rig

Respostas:


4

O caminho que estou tomando atualmente para experimentar esses idiomas e outras coisas, com grande sucesso e facilidade de uso:

  • instale o Debian em uma VM VirtualBox, executando no host do Windows
  • manter todo o meu código no host ou em uma unidade de rede compartilhada, editar no host usando o editor favorito (ainda indeciso entre o Notepad ++ e o SublimeText; para C ++, eu apenas uso o VS)
  • compartilhe o diretório no host, monte-o na VM
  • compile / execute o código na VM (ou você pode até fazer o ssh usando o cygwin)

Dessa forma, você obtém os profissionais dos dois sistemas operacionais.


hmm ... interessante - mas eu acho que fazer o mergulho profundo e instalar Ubunto paralelo no meu brinca-laptop (não prejudique meu trabalho-máquina - até o momento)
— Carsten

11
No meu laptop pessoal, uso o Windows de inicialização dupla - Linux há muito tempo e nunca tive problemas com isso. Por outro lado, na minha área de trabalho, não instalei o Windows nos últimos 10 anos. A menos que eu precise de algum software específico disponível apenas para Windows (por exemplo, jogos de vídeo ou o software de interface de celular), eu realmente não sinto falta do Windows. Conclusão: você pode executar toda a programação (funcional) necessária no Linux depois de se familiarizar com as ferramentas adequadas.
— Giorgio

Na verdade, eu tentei isso no meu desktop hoje - Ubuntu em uma VM VirtualBox - dei 30 GB no meu SSD e 4 GB de RAM, juntamente com dois núcleos - funciona com as poucas coisas que tentei (e a VM é realmente ótima com janelas aparentemente redimensionáveis ​​e tudo isso) - por enquanto, será assim que tento o ubuntu por enquanto - talvez eu instale uma inicialização dupla no meu laptop mais tarde, mas com o monitor duplo isso seja ótimo - Obrigado, joguei isso como resposta
— Carsten

18

Resposta curta: Existe uma solução simples para o seu problema. Basta instalar a máquina virtual com Linux (Ubuntu) - é grátis.

Também sou desenvolvedor principalmente do .NET que gosta de experimentar coisas diferentes ou experimentar várias estruturas e / ou ferramentas de desenvolvimento. O principal aqui é não mexer no seu ambiente de desenvolvimento principal. Portanto, instalar tudo em uma máquina virtual (o SO nativo, estruturas, configurá-los e configurá-los etc.) para o tipo de desenvolvimento que você pretende fazer é o caminho mais lógico e ideal.

Editar: você pode considerar uma solução de virtualização diferente para criar sua máquina virtual. Minha preferência pessoal vai com o VirtualBox . É uma solução de virtualização x86 gratuita que permite que uma ampla gama de sistemas operacionais x86, como Windows, DOS, BSD ou Linux, seja executada em um sistema Linux.


2
a capacidade de fazer uma captura instantânea do seu ambiente de desenvolvimento para o qual você pode reverter mais tarde é uma grande vantagem dessa abordagem. você também pode compartilhar o ambiente de desenvolvimento com colegas interessados
— Arthur Ulfeldt

qual VM você sugere?
— Carsten

11
Anteriormente, eu estava usando o VMware, agora prefiro o VirtualBox - menos problemas para lidar.
— Yusubov 21/09/12

12

Uso Haskell e Scala (e também faço alguns Scheme, Common Lisp, SML, OCaml, Erlang), todos no Linux (Ubuntu).

Todos os idiomas acima (compiladores e intérpretes) podem ser instalados facilmente (existem pacotes que podem ser instalados usando o apt-get ou outro sistema de gerenciamento de pacotes).

O Scala tem uma boa integração com o Eclipse e os plug-ins do Scala são desenvolvidos ativamente. Se você quiser saber mais, existe um curso sobre o Scala atualmente em execução no Coursera, que explica como usar o Scala no Windows, Linux e Mac. Talvez você não tenha todos os recursos e integração do Visual Studio, mas desenvolvi projetos bastante grandes no Eclipse e ele funciona muito bem.

Para editar o Haskell (e os outros idiomas listados acima), uso o gvim, o que é bom para pequenos projetos. Você pode usar outro editor (por exemplo, EMACS), desde que tenha destaque de sintaxe para Haskell. Caso contrário, você pode dar uma olhada no haskellwiki (obrigado a Zach L pela sugestão).

Para gerenciar o código fonte (controle de versão), uso o SVN através do Eclipse para todos esses idiomas.


obrigado - eu não fiz nenhum projeto de haskell em larga escala (ainda) e até agora o Notepadd ++ (sic!) fez o trabalho por mim - talvez eu deva procurar no VIM / EMACS, mas isso pode acabar sendo mais difícil de aprender do que o buraco coisa outra OS ... sim estou muito bem tratados pelo IDEs (já mencionadas isso - não é?)
— Carsten

Existem alguns IDEs Haskell listados no HaskellWiki .
— Zach L

2
Para editar o código Scala, você pode usar o Eclipse. Há também um plug-in Eclipse da planilha Scala que permite editar e testar trechos de código em tempo real. O VIM (e o EMACS) levam algum tempo para se acostumar, mas são muito poderosos. Eu não aprenderia nenhum deles apenas para editar arquivos Haskell. Eu aprendi o VIM como um editor de uso geral.
— Giorgio

@ Zach L: Obrigado pelo link. Posso adicioná-lo à resposta se você me der permissão. Eu experimentei Leksah há alguns meses atrás, mas até onde me lembro, ainda não era utilizável. Até agora, não testei nenhuma outra ferramenta Haskell.
— Giorgio

@Giorgio Claro que você pode adicioná-lo!
— Zach G

10

O MacOS requer hardware Mac ou você pode executá-lo no VirtualBox, mas da última vez que tentei não funcionou. E como você não deseja substituir seus problemas atuais de configuração / instalação por outros problemas, sugiro que você gaste muito dinheiro ou tente o Linux. Eu usei o Ubuntu para desenvolvimento Haskell, Scala e Lisp com Eclipse, Netbeans, IntelliJ e Emacs, e não tive muitos problemas para configurá-los.


obrigado - o Ubuntu parece muito promissor devido à sua instalação (aparentemente) fácil no Windows ... faz muito tempo que eu realmente usei o Linux - acho que vou tentar - o IntelliJ é um produto comercial, certo?
— 20912 Carsten

@ CarstenKönig Sim, é um produto comercial, no entanto, acredito que você pode obter licenças gratuitas se pretender usá-lo em sala de aula ou usá-lo para manter um projeto de código aberto (e pode provar isso).
— Daniel B

11
@ CarstenKönig IntelliJ tem uma edição da comunidade (gratuita) .
— yannis

o plugin scala para IntelliJ também é gratuito, mas eu ainda recomendaria o Eclipse.
— Kim

Vindo do Visual Studio, o IntelliJ será um ambiente muito mais familiar para trabalhar. Parece uma versão reduzida do VS; enquanto as interfaces / fluxo de trabalho do Eclipse e do VS são extremamente diferentes.
— Dan Is Fiddling Por Firelight

5

Todos os sistemas operacionais do tipo Unix têm ferramentas de linha de comando muito boas . Pessoalmente, tive boas experiências com o Ubuntu para desenvolvimento e implantação, muitos dos meus amigos também juram pelo MacOS. Não vi um motivo óbvio para preferir um ou outro; todos são IMO melhores que o Windows para o trabalho em linha de comando.

No lado Clojure / Scala especificamente, você pode achar que o Windows é realmente muito bom se você usar um dos Java IDEs com o plug-in Clojure / Java apropriado. Pessoalmente, uso o Eclipse com anti - horário como meu principal ambiente de desenvolvimento Clojure no Windows 7. Também há o Scala IDE para verificar. Essa é uma boa abordagem se você gosta de IDEs com todos os recursos e / ou deseja fazer programação poliglota no mesmo ambiente. Uma vantagem extra de usar algo como o Eclipse é que a integração do git / svn / maven é muito boa.


3

Embora eu seja um grande fã de mac e linux, não há razão para que você não possa fazer nenhum desses idiomas no Windows. Além disso, se você quiser uma linguagem funcional no Windows, não negligencie o F #, que é uma linguagem .net


4
F # é uma das minhas principais línguas (o outro beeing C #): D
— Carsten

Ainda não aprendi, mas parece uma linguagem bastante agradável. Hoje passo a maior parte do tempo em Erlang
— Zachary K

2
O F # é o IMHO a melhor linguagem do ecossistema .net, faltando apenas um pouco de amor por ferramentas (sem refatorações, suporte a soluções quase inexistente (por exemplo, sem subpastas prontas para uso)) - você pode pensar nisso como alguns haskell / Ocaml / C # hyprid
— Carsten

Foi isso que ouvi. Eu tenho a impressão de que F # é maneira de levar idéias geniais de Haskell e movê-los para o mundo .NET da Microsoft
— Zachary K

@Carsten König: Eu não sei F #, mas, tanto quanto eu sei, é principalmente derivado de Ocaml.
— Giorgio

3

Eu usei o Haskell no Windows, OS X e Linux (Ubuntu), para poder oferecer algumas observações sobre isso. Agora, qualquer coisa que você possa obter da Plataforma Haskell provavelmente funcionará bem, não importa o que acontecer, mas depois disso:

  • Relativamente poucos programadores Haskell usam o Windows. Você encontrará coisas no Hackage que assumem um ambiente semelhante ao Unix sem realmente declarar isso explicitamente.

  • Muita coisa útil vem das ligações da FFI às bibliotecas C, e a falta de uma cadeia de ferramentas de compilação C ainda vagamente consistente e confiável no Windows significa que, na minha experiência, instalar as ligações da FFI pelo hackage é, na melhor das hipóteses, um crapshoot.

  • Qualquer coisa necessariamente específica da plataforma, que de maneira divertida inclua bibliotecas de GUI de plataforma cruzada, é mais provável que "apenas funcione" no Linux.

  • Cygwin não ajuda tanto quanto você pensa.

Em resumo: tudo tende a funcionar no Linux, a maioria das coisas funciona no OS X, mas algumas são estranhas, e no Windows você deve encontrar muitas dores de cabeça interessantes ao usar as bibliotecas.

Se você só quer se divertir experimentando coisas e aprendendo Haskell, faça um favor a si mesmo e use uma VM do Ubuntu ou algo assim.

Tanto quanto os editores e tais go - emacs e vim são populares como sempre. Eu nunca aprendi a usá-lo (embora eu realmente deva ...) e não ligo para a maioria dos IDEs, então geralmente fico com o SciTE - é um invólucro fino em torno de um widget de editor chamado Scintilla, que você pode saber como sendo o que O Notepad ++ usa.


1

Em vez de escolher um sistema operacional, deixe-me abordar isso do ângulo do IDE. Se você estiver interessado em Scheme, eu o incentivaria a experimentar o DrRacket, que surgiu da selva de Scheme há alguns anos atrás. O IDE funciona bem no Windows, OS X e Linux.

Agora, você só precisa escolher o sistema operacional certo para executar todas as suas outras linguagens funcionais.


obrigado - só descobri o Racket ontem - não tive muito tempo para investigar, mas o IDE / Lang. parece interessante para mim - embora eu ainda não possa dizer se é realmente viável para o desenvolvimento de aplicativos "reais".
— Carsten

0

Simon Peyton-Jones, um dos criadores de Haskell é um usuário do Windows e, pelo que entendi, Haskell tem excelente suporte ao Windows.

Sua pergunta é um pouco vaga para ser honesta, sua escolha do SO não está ligada ao paradigma da linguagem que você está usando.

Pessoalmente, acredito que fora do mundo C # e Java (onde o ambiente de desenvolvimento é ditado pelo seu IDE), um ambiente de desenvolvimento deve sempre ser uma versão do Unix, seja BSD, Linux ou OSX.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.