Pergunta

As minhas perguntas é simples!

  1. Você começar a aprender Smalltalk se você tivesse o tempo? Por quê? Por que não?
  2. Você já sabe Smalltalk? Por que você recomendaria Smalltalk? Por que não?

Pessoalmente, eu sou um programador Ruby on Rails e eu realmente gosto dele. No entanto, eu estou pensando sobre Smalltalk porque eu li vários blogs e algumas pessoas estão chamando Rubi algo como "Smalltalk Light". A segunda razão pela qual eu estou interessado em Smalltalk é Mar .

Talvez alguém fez a mesma transição antes?

EDIT: Na verdade, o que me mais animado Smalltalk / Seaside é o seguinte episódio de WebDevRadio: Episódio 52: Randal Schwartz em Mar (entre outras coisas)

Foi útil?

Solução

Se você gosta de Ruby que você provavelmente vai gostar Smalltalk. IIRC Mar foi portado para o Gema VM, que faz parte da sua Gema / S OODBMS. Isto tem suporte muito melhor fio de Ruby, por isso é um melhor back-end para um sistema de alto volume. Esta pode ser uma boa razão para ter um olhar mais atento sobre ele.

Razões para aprender Smalltalk:

  • É um ambiente de programação muito, muito bom. Uma vez que você tem a sua cabeça em torno dela (ela tende a ser um pouco de um choque de cultura para as pessoas usadas para C ++ ou Java), você vai encontrá-lo para ser um realmente bom ambiente para trabalhar. Mesmo um smalltalk realmente de baixa qualidade como o antigos Digitalk que eu usei é um sistema extremamente agradável de usar. Muitos dos antigos XP e OO tipos guru como Kent Beck e Martin Fowler cortou seus dentes em Smalltalk volta no dia e, ocasionalmente, pode ser ouvido anseio para os bons velhos tempos em pública (graças a Frank Shearer para a citação, +1) - o desenvolvimento ágil originou nesta plataforma.

  • É um dos mais plataformas de desenvolvimento produtivo da história.

  • Existem várias implementações maduras e há uma surpreendentemente grande base de código lá fora. Em um ponto ele obteve bastante moderno em círculos do mercado financeiro, onde desenvolvedor produtividade e time-to-market é bastante um grande negócio. Até meados dos anos 1990 era mais ou menos o único jogo na cidade (com a possível exceção de LISP) se você queria uma linguagem de alto nível comercialmente com suporte que era adequado para o desenvolvimento de aplicações.

  • A implantação é fácil -. Apenas solte o arquivo de imagem no diretório apropriado

  • Não é realmente um motivo, mas o livro Gang of Four usa Smalltalk para alguns de seus exemplos.

Razões para não aprender Smalltalk:

  • É algo de um nicho de mercado. Você pode ter o trabalho constatação de problemas. No entanto, se você está produzindo algum tipo de .com aplicação onde você possui os servidores isso pode não ser uma questão.

  • Ele é visto como um sistema legado por muitos. Há relativamente pouco novo desenvolvimento na plataforma (embora Mar parece estar dirigindo um pouco de um renascimento).

  • Ela tende a não jogar bem com os sistemas de controle de origem tradicional (pelo menos a partir do início de meados dos anos 90, quando eu usei). Isto pode ou não pode ainda ser o caso.

  • É um pouco insular e gosta de jogar por si só. Python ou Ruby são construídos para a integração a partir do zero e tendem a ser mais promíscuos e, portanto, mais fácil de integrar com o software do 3o partido. No entanto, vários sistemas mais convencionais outro sofrem deste tipo de insular a um maior ou menor grau e que doesn 't parecem impedir o seu uso muito.

Outras dicas

Bem, desde que você me mencionado pelo nome, eu sinto que eu deveria gritei.

Como eu disse naquela entrevista podcast, e como tenho repetidamente demonstrado no meu blog em http: // MethodsAndMessages. vox.com/ , este é " o ano de smalltalk ". E tendo feito agora Smalltalk defesa durante os últimos dez meses, eu posso ver que realmente está acontecendo. Mais clientes estão se voltando para Smalltalk e Seaside, e os vendedores Smalltalk estão todos trabalhando duro para capturar esse novo influxo de atenção. Mais maiores conferências Smalltalk estão sendo planejadas. Mais ofertas de trabalho estão sendo enviadas. Mais postagens do blog estão sendo feitas.

Se você ligar para Smalltalk hoje, você não está sozinho. Há muitas outras pessoas que estão lá fora também.

Editar

Bem, um número de anos mais tarde, eu estou recomendando agora Dart . É uma grande linguagem se originou pelo Google, mas agora propriedade de um comitê de ECMA. Corre-se serverside em grande estilo node.js, mas também clientside em navegadores modernos por transpiling para JavaScript. Lotes de bons livros, blogs, canais de ajuda, suporte IDE, público ao vivo pastebin . Eu acho que as pernas definitivamente tem ... o suficiente para que eu estou escrevendo cursos para ensiná-lo no local ou online, e eu tenho certeza que há um ou dois livros nas obras de mim. E Gilad Bracha, um velho tempo Smalltalker é um dos principais contribuintes para o projeto, por isso há uma grande quantidade de Smalltalk em Dart.

Smalltalk é uma linguagem boa para aprender, ea grande coisa é que ele só tem um dia para fazê-lo. É muito mais do que apenas uma linguagem acadêmica. As pessoas estão construindo enormes, escaláveis ??e aplicativos replicáveis ??manipulação bilhões de dólares. Eles simplesmente não falar muito sobre isso. Veja, por exemplo, GemStone e Orient Overseas Container Line: A indústria naval Estudo de Caso .

Mar é uma boa razão para aprender Smalltalk, mas eu não acho que você vai encontrá-lo ordens de magnitude melhor do que Rails.

A única coisa que me convenceu foi GemStone. Eu realmente gosto VIDRO de Gemstone (GemStone, Linux, Apache, Smalltalk, beira-mar). A parte matador de que é GemStone, que lida com toda a persistência de objetos para você na sua maioria sem você pensar sobre isso. Vendo algumas de suas demos e ouvir sobre o que as pessoas estão fazendo com GemStone redefinir minha idéia do que "grande aplicação" significava.

A parte que me incomoda mais sobre Rails é o mapeamento objeto-relacional. Isso não é nada contra o Ruby, porque é uma porcaria tão duro em Glorp (que lida com ActiveRecord para Smalltalk), ou Perl, ou qualquer outra coisa. Mapear objetos para tabelas de banco de dados é apenas doloroso. Com GemStone, pensando sobre o banco de dados desaparece, por isso o trabalho com o banco de dados desaparece também. É como uma enorme pedra (ou uma tropa de macacos) é retirado minhas costas.

> poderia não encontrar um ambiente de desenvolvimento Smalltalk que não custou dois braços e uma perna

Google - livre smalltalk

Cincom Smalltalk, Squeak, GNU Smalltalk

Aprendizagem Smalltalk lhe dará uma base no desenvolvimento de software orientado a objetos a partir da perspectiva do homem que inventou OO (Alan Kay). A idéia de um ambiente de janelas sobrepostas veio de Smalltalk.

A pedra de tropeço para aprender Smalltalk é que é uma mensagem do sistema de passagem com uma sintaxe estranha para controle de fluxo como:

i < 60
   ifTrue: [ self walk ]

Ele tem uma biblioteca de classes muito maduro que tem uma consistência Eu não vi muitos lugares. A biblioteca de classes em todos os ambientes (mesmo Smalltalks comerciais) tem fonte disponível que lhe permite aprender com os mestres da língua. Ao programar Smalltalk, eu sempre fazer a pergunta como é feito no ambiente.

Smalltalk é geralmente implementada em uma imagem que é um ambiente ao vivo para todos os objetos em seu sistema.

O depurador interativo realmente separa Smalltalk de Ruby.

Mar é o framework de desenvolvimento web e tem dado Smalltalk uma nova holofotes. É um ambiente baseado continuação que permite a depuração intra-hit e uma suave experiência rica tipo de cliente desenvolvimento (fluxo da aplicação superior pode ser projetado em um único método). É de integração com script.aculo.us foi feito de tal forma que seja facilmente chamado de dentro Smalltalk.

Nigel, uma citação que eu tenho é esta:

Embora seja agora um longo tempo desde que eu fiz qualquer coisa com ele, eu nomear Smalltalk, eu ainda não encontrei nada parecido com isso por ser capaz de transferir pensamentos em código de computador. Não é apenas a língua: É o maravilhoso ambiente do navegador, as bibliotecas, ea cultura de escrever código claro, bem concebido tão rapidamente quanto qualquer outra coisa pode acionar a espaguete. Quando os participantes da JavaOne foram exaltando como Java foi muito mais produtivo do que qualquer outra coisa, eu precisava de um saco de papel marrom. Oh bem, de volta para resolver os meus caminhos de classe ... - Martin Fowler (Revista Desenvolvimento de Software, Jan 2001)

Eu achei aqui .

Eu recomendo a todos para aprender Lisp (Esquema) ou Smalltalk.

Smalltalks tem IDEs maravilhosas que você não quer perder uma vez que você conseguiu superar o choque cultural. E sim, há mais de um mais livre:. Squeak, golfinho, Smalltalk / X, e VisualWorks (Não-Comercial)

Lisp pode ser ainda mais limpo em sua fundação matemática, no entanto.

relação

PS: na verdade eu recomendo aprender tanto

Eu não sei o Ruby ..

Smalltalk é um pura OO idioma. Se você sentir a necessidade de realmente entender OO, e não apenas o OO simulado da maioria das linguagens populares 'OO' (como C ++, Java, etc), então eu recomendo que você jogar com Smalltalk.

Em Smalltalk tudo é um objeto, com atributos, comportamentos e meta. Nas simulações você tem tipos de dados que você usa em seus objetos.

Eu diria que o jogo com ele, você só irá beneficiar.

discordaria com o cartaz que calcula você não usaria Smalltalk para grandes aplicações - que é precisamente onde ela brilha. Mas eu criei bastante groovy do (nota minúsculas) protótipos de aplicativos em menos de uma semana também.

Eu aprendi OO na ST a partir de 92, incrivelmente feliz que eu fiz isso. Ele me deu um fundo real OO. Pensando em classes. Nenhum tipo. ST tem uma verdadeira ênfase em mensagens. Se você quiser saber alguma coisa enviar um objeto uma mensagem e obter uma resposta. IMHO, o ethos ea IDE realmente incentivá-lo a fazer a coisa certa com o seu acoplamento e coesão.

Em meu dia de trabalho Java, eu estou preso com arquivos, genéricos, IDE como eclipse que são ordens de magnitude menos produtivo que qualquer IDE ST. Eu estava usando ST a única vez que eu terminei um à frente do desenvolvimento do previsto. Na verdade, foi tão produtiva, e ficamos muito reutilizar I teve de ser transferida para outro projeto, como eu não tinha nada a fazer! (Ok, talvez eu poderia ter gasto tempo aprendendo a estimativa ...)

Baixar guincho, encontrar um livro bom e jogo. A única desvantagem é que, se o seu show dia é usando Java ou C #, você vai acabar desejando que você poderia usar ST. Você iria chegar em casa mais cedo.

Chris Brooks

Estou totalmente em seus sapatos. Im usando RoR e olhando para terra Smalltalk. Eis alguns prós e contras que eu acho importante:

Pros:

  • Mature & ambiente estável
  • ciclo de desenvolvimento rápido
  • Faz você pensar mais e escrever menos

Contras:

  • requer pensar diferente
  • Ainda não chegou a agarrá-lo

É muito engraçado como eu tenho que saber sobre Smalltalk. Era uma coisa que keept aparecendo nos resultados do Google na busca de Lisp e Erlang coisas. Um dia eu verifiquei e foi surpreendido com o ambiente de janelas agradáveis. Alguns momentos mais tarde eu encontrei quadro Aida / Web. Eu era viciado e começou a aprender Smalltalk através do desenvolvimento web com este quadro.

Ainda não chegamos lá, mas é tão maldito interessante Eu só não pode ficar parado ... :-) Estou me divertindo novamente.

não iria começar a aprender que, se eu tivesse tempo. Por que não? Porque seria mais produtivo e lucrativo financeiramente para aprender C # ou Java.

Por outro lado, se o seu hobby, e gostaria de ir em uma escavação arqueológica, então eu sugiro que passar algum tempo olhando para o que, quando, porquê e como de Smalltalk, pesquisando Alan Kay. fascinante história e uma pessoa incrível (afinal, ele ganhou o Prêmio de girar). Então, talvez, jogar com guincho um pouco para obter uma sensação para a linguagem. Após isso, você pode ter um respeito recém-descoberto / compreensão de blocos, fechamentos e princípios Object Oriented.

Eu sei e usar Smalltalk, tem por aproximadamente 15 anos, ainda manter , e não recomendaria Smalltalk a um amigo. Por que não? O emprego é uma boa coisa para ter e manter a ficar. Embora você possa aprender muito com Smalltalk você não pode facilmente transformar isso em gainfully sendo empregadas neste dia e idade.

Além disso, você parecia estar mais animado Mar e eu assumiria a parceria Mar / GemStone. Eu usei GemStone por algum tempo e os dois juntos são muito atraentes. Espero que eles possam obter a quota de mercado eo impulso necessário para ser bem sucedido.

Não! Se você realmente começar a aprender isso, você pode não querer programa em outra coisa mais que nunca.

Isto pode não ser verdade, se você é um programador Lisp.

Eu fui ensinado Smalltalk em um dos primeiros cursos de programação de nível de pós-graduação da faculdade Object-Orient (circa 1988). O professor achou melhor começar era um "puro" OO langauge, antes de passar para um mais moderno (que fizemos um pouco de C ++ no final do semestre).

Por essa medida, ainda é melhor começar com OO pura, embora estes dias temos Java e C #, sendo que ambos são "quase-pura" OO - perto o suficiente para que você pode obter por ignorar as características não-OO deles, e limitando-se ao subconjunto Pure-OO dos langauges.

Se você quer uma melhor compreensão do Extreme Programming (e mesmo Scrum) Eu diria que Sim .

Por impacientes programadores Java precisa aprender Smalltalk:

http: //www.dafydd. net / Arquivo / 2010 / why-Smalltalk-isnt-just-outro-language /

Eu tenho sido um engenheiro de software para muito poucos anos agora. Eu povo ouviu abrir Smalltalk algumas vezes, e certamente Smalltalk tem sido em torno desde cerca de 1980, mas é uma daquelas línguas que nunca pareciam torná-lo para o mainstream software. Mais ou menos como Objective C, clipes, PL / I, etc -. Algo que você pode ter ouvido, mas algo que a maioria das pessoas nunca programado em

Eu provavelmente não tomar o tempo para aprender Smalltalk a menos que eu precisava para um determinado trabalho. Olhei para alguns Smalltalk tutoriais e exemplos brevemente alguns anos atrás, e parece que ele tem algumas vantagens claras para certos aspectos da programação OO (como o conceito mensagem parece legal). Mas, infelizmente, não é mainstream, e não parece estar ganhando muita força.

Com certeza, aprender Smalltalk! Isto é 2015 e Smalltalk está em ascensão novamente, graças a Pharo . Pharo é gratuito. Pharo está evoluindo rapidamente em uma ferramenta poderosa empresa. Na versão 4.0, e logo para ser 5.0, ele amadureceu muito em apenas quatro anos!

Depois, há Âmbar , que é Smalltalk para a web. É também LIVRE e evoluindo rapidamente.

Apesar do Smalltalk reputação , este é não Smalltalk de seu pai. Modern Smalltalk é emocionante e promissor.

É verdade que os trabalhos de Smalltalk (ainda) não são abundantes. Mas se o suficiente de você agregar a uma nova onda de Smalltalkers, em seguida, a indústria vai se adaptar a ele e vamos ver uma maior adopção de Smalltalk no negócio. A questão é, você tem a visão?

Esta discussão se tornou muito real para mim. Estou planejando para uma migração de software para uma aplicação web. É um software baseado banco de dados. Estou especialmente verificando as alternativas 1) Carris 2) Seaside

Se eu conseguir os números do Gemstone / S como banco de dados, eu vou considerar isso também. Então, para mim isso significa que tenho de aprender Smalltalk (melhor) do que antes. Porque pode ser que ele vai ser o meu trabalho para os próximos 15 anos. Você faria (e não devem) trabalhar com software você não gosta por tanto tempo ;-). Eu tenho a impressão de Gemstone / S é uma das aplicações "assassinas". Mas a persistência de objetos ainda é um campo muito difícil ....

1) Sim! É sempre bom para aprender uma língua. Se você estiver indo para aprender uma língua, torná-lo uma poderosa linguagem, influente que pode ser aprendida facilmente e rapidamente.

Smalltalk permanece uma linguagem pré-eminente e ambiente para a aprendizagem de conceitos de OO.

É todos os objetos, todo o caminho. Isto faz para uma abordagem realmente consistente para trabalhar.

Inteiros são instâncias da classe Integer. Strings são uma coleção de objetos de caráter. As aulas são objetos instância singleton para a classe eles definem.

As estruturas de controle funcionam através do envio de mensagens get a instâncias da classe booleana.

Mesmo métodos anônimos (blocos de código, aka blocos) são objetos.

Tudo é feito através do envio de uma mensagem para um objeto. A sintaxe pode ser instalado em um cartão.

A clareza dos conceitos e sua implementação em Smalltalk significa que você pode desenvolver formas de pensamento que transferem diretamente em Java, Ruby e C #. Espero que seja verdade para Python, também.

É tão bom para fazer os conceitos claro que uma grande universidade do Reino Unido usado Smalltalk para treinar 5.000 pessoas por ano nos orientado a objetos de computação.

Squeak 5, acaba de ser lançado. Ela ganhou grandes aumentos de desempenho de seu novo Cog / Spur VM, que apresenta com coleta de lixo progressiva.

Pharo 4 tem um tema bonito da área de trabalho limpa-olhando. A próxima versão, Pharo 5, será lançado em breve. Ele vai passar a usar o Cog / Spur VM, ele terá cerca de 5.000 classes no lançamento, e pacotes adicionais de aulas estão prontamente disponíveis a partir da rede através da ferramenta Configuração do navegador.

Squeak 5 é alto desempenho mesmo em primeiro-gen Raspberry Pi, e é quase 50% mais rápido no novo $ 5 Raspberry Pi zero. $ 99, você compra um Raspberry Pi 2, tela e caso -. Executando uma amadurecer, IDE totalmente recurso completo

pesquisa de ponta está a ser feito em, sistemas distribuídos OO coordenados em Smalltalk (por exemplo Naiad e colher).

Alguns dos maiores bancos de dados corporativos do mundo são executados em Smalltalk -. Incluindo o rastreamento de 60% de contêineres do mundo, e Trading Systems na maior banco do mundo

Você pode usar Smalltalk como uma espécie de CoffeeScript super-potência, escrevendo em Âmbar Smalltalk e transpiling para JavaScript, sendo executado no navegador.

Squeak, Pharo, e Amber são todos gratuitos, Open-source, linguagens e ambientes abertos licenciado.

Squeak e Pharo fornecer write-once, run anywhere instalações para MacOS, Windows e Linux. (Possivelmente Riscos, também).

Dolphin Smalltalk é alvejado firmemente at Windows look-and-feel nativo e permite compilar .EXEs fechados de sua obra acabada para distribuição aos usuários finais. Maior desenvolvimento do Dolphin pelo vendedor parou, mas é completamente funcional, e, como todos Smalltalks, destinadas a ser maciçamente extensível. (Eu mencionei que Pharo agora tem 5.000 aulas, em comparação com Squeak de 3000? Pharo é um fork do Squeak 3.9)

** Há um guia de como fazer para instalar e iniciar Squeak, Amber, Pharo, Cuis and Dolphin em: ** http: //beginningtosmalltalk.blogspot .co.uk / 2015/11 / how-to-get-smalltalk up-and-running.html

O Mar corridas quadro web sobre Squeak e sobre Pharo. É uma ferramenta madura maravilhoso, como é a estrutura AidaWeb mais tradicional.

VisualAge, VisualWorks e Gemstone tudo fornecer sistemas robustos de nível empresarial. Gemstone fornece um banco de dados objeto infinitamente escalável com transações e persistência.

2) Sim. - Eu já não usá-lo

Eu aprendi-o através da Universidade Aberta, e foi imediatamente produtivo em Ruby (uma cópia do livro Pickaxe ea referência da biblioteca do meu lado). Ele me ajudou enormemente com Java,e com Moo-code Xerox.

Acabo de regressar a ele para escrever aplicativos para controle de gerenciar e distribuir responsivo, maciçamente aplicativos móveis multi-plataforma.

Espero que em breve eu vou ser re-escrever meus aplicativos móveis JavaScript usando Âmbar, também.

Eu realmente não sei o que você está procurando.

Se você está procurando uma linguagem diferente para escrever, eu pensaria que dependem fortemente das bibliotecas disponíveis. Eu sei nem o Ruby nem Smalltalk, mas parece provável que a maneira mais eficiente para escrever Ruby on Rails-tipos de aplicações podem não ser Smalltalk.

Se você está procurando para aprender as idéias por trás Ruby, isso pode ser um movimento muito bom. Eu não tenho nada quantitativa, mas eu sempre me senti melhor sobre o uso de ferramentas (como sistemas de linguagem) se eu sabia mais do que apenas as ferramentas, se eu kmew as idéias por trás deles ou como eles trabalhavam.

Se você quer aprender diferentes tipos de linguagens orientadas a objeto, você pode muito bem querer aprender Smalltalk (se ele difere significativamente do Ruby), algo como Java ou C ++, e talvez também o objeto Common Lisp Sistema.

Se você quer apenas aprender algo diferente, Smalltalk pode muito bem ser uma boa escolha. Eu também sugerem Lisp comum, e outras pessoas, sem dúvida, tem outras sugestões (você pode obter um bom sistema de Forth hoje em dia?).

Sim, estou interessado nele. Tentou iniciar uma vez já, mas não conseguiu encontrar um ambiente de desenvolvimento Smalltalk que não custou dois braços e uma perna.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top