
[英]AS400 programmer looking to learn OOP language. Which is better Java or .Net
[英]asm / C / Python / Perl / Lisp / Scheme Programmer looking for something new to learn [closed]
我现在需要有一个家庭项目,我正在开发Python / Django。 我想学习一些新东西,所以我想考察一下Java。
用于部署Java Web应用程序的最受尊敬的Web框架是什么? 我没有在轨道上检查ruby的唯一原因是因为ORM和其他部分与Django的相似之处。
或者,有人认为我应该看看海边/ smalltalk吗? 谁能解释我为什么要这样做?
如果有人可以为它做出好的论证,我会考虑Haskell。 我需要一个Web框架和数据库访问库来配合它。
如果我不习惯通过x86 / asm的堆栈范例,我会考虑因素/。 我也愿意听到任何反驳意见。
另见: http : //www.reddit.com/r/programming/comments/9v3uf/asm_c_python_perl_lisp_scheme_programmer_looking/
有了这些技能,你为什么不学习更多在你的舒适区之外的东西,比如木工或绘画,或者与你的领域没什么关系的数百种其他技能。
在某些时候,所有语言都是相同的,你将从学习另一种语言中获益匪浅。
然而,在完全不同的情况下,您将成为一个更加全面的个体。 我,就像绘画和高尔夫一样,尽管我对其中任何一个都不擅长 - 当我问我的高尔夫教练我的差点是什么时,他说这是无法直接击球:-)
我发现我喜欢做我不习惯的东西,因为这是一种真正的全新体验。 在一段时间之后学习另一种计算机技能是一件容易的事情,因此减少了这种技能的乐趣。
不要误会我的意思,我喜欢跟上这个领域的发展,但是,在大多数情况下,全新的技术对我的职业生涯毫无贡献,因为我所做的大部分工作都是稳定的技术。 你可能处于不同的境地。
听起来你喜欢网络编程,所以smalltalk / seaside非常棒。 IMO每个人都应该学习smalltalk,即使他们从不使用它,而且海边是一个与你习惯的完全不同的Web框架。 Django,fer实例,都是关于REST的,而海边哲学基本上是“用REST来治愈”。
如果你从来没有在基于图像的环境中进行编码,那么它的某些东西似乎......自然,神奇甚至。 源自smalltalk的许多IDE功能已经在基于文件的语言IDE中实现,但它总是感觉像一个不自然的嫁接,其中那些相同的功能感觉好像它们只是属于smalltalk。
查看Pharo。 给它足够的时间来适应这样一个事实:没有菜单栏,看看它是否没有抓住你。
我确实建议使用Java。 当我在寻找工作时,我注意到Java开发人员有很多空缺,因此有很多工作,你可能有一天会有机会使用你的Java技能。
然后你应该尝试Scala。 Scala是一种Python-ish语言,它使用函数式编程来制作非常可伸缩的程序。 与Python不同,在Scala中,您需要声明类型的东西。 Scala在Java虚拟机上运行,因此可以在Java商店中使用。
我可能只是给你这个答案,因为这些是我打算学习的下两种语言,我自己。
你可能也应该花一点时间玩Javascript。 Javascript有点像是一个“隐形Lisp”,我想你会选择它。
http://www.crockford.com/javascript/javascript.html
http://bc.tech.coop/blog/030920.html
哎呀,玩得开心吧。 写游戏什么的!
从你的列表中我会说你应该使用完全面向对象的语言。
你可以查看Ruby,但我推荐使用JavaScript,因为它提供了很多你可能不会想到的有趣的东西,比如支持闭包,高阶函数和原型继承 - 再加上它很有趣并且变得非常受欢迎。
我需要一个Web框架和数据库访问库来配合它。
如果您的所有编程都基于Web框架和SQL数据库,那么只有在切换语言时才能使用不同的语法解决相同的问题。
使用不同的数据模型构建一些东西 - Prolog,Conceptual Graphs,RDF,Linda / JavaSpaces,XQuery,HDF5,ASN.1或不同的网络模型 - XMPP pub-sub,SNMP,零配置网格或一群ZigBee启用了Arduinos。
也许看看像Oz , Io或Erlang / OTP这样的语言,这些语言是分布式的,而不是像你提到的那样主要是单片式的。
那么Java Spring框架呢?
或者NHibernate?
http://en.wikipedia.org/wiki/NHibernate
在一天结束时,它取决于你。 因为我只列出了两个中的两个。 当我在专业上编写静态语言时......我尝试学习动态或脚本语言。 反之亦然。
此外,我尝试学习完全不同的东西或在我的领域之外...甚至可能是Powershell或Korn shell或ActionScript。
用于部署Java Web应用程序的最受尊敬的Web框架是什么?
没有一个Web框架比其他框架更受尊重。 Struts2,Spring MVC,Stripes或Wicket(基于事件)都是很好的候选者(我个人喜欢Stripes)。 但是你需要更多的持久性(Hibernate或JPA)和胶水(Spring)。
Grails(Groovy on Rails)是另一个不错的选择。
或者,有人认为我应该看看海边/ smalltalk吗? 谁能解释我为什么要这样做?
好吧,我想学习Smalltalk不会受到伤害,但我认为没有理由选择Smalltalk而不是像Java这样的现代语言。 关于工具,除了VisualAge for Smalltalk之外,我对这个领域一无所知,但就个人而言,我真的远离它。
如果有人可以为它做出好的论证,我会考虑Haskell。 [...]
看起来我不适合那个人。
如果我不习惯通过x86 / asm的堆栈范例,我会考虑因素/。 我也愿意听到任何反驳意见。
与上述相同。
我建议掌握Lisp(用一些相关的方言),所以即使你的简历上有Lisp和Scheme,也可能值得深入学习。 有关原因,请参见http://www.paulgraham.com/avg.html 。
否则Prolog可能会对你感兴趣。 它与SQL有关,但与编程有关,而不是与一组有组织的数据表进行通信。
如果您想要定位Web技术,我只有Java经验。 这里最新的Java Server Faces(JSF)允许使用Ajax更新页面,而Google Web Toolkit允许使用非常丰富的基于组件的Web页面。 这些可能足够多汁,足以引起你的兴趣,学习足够的Java来发现它们很有趣:)
我没有在列表中看到C#和.NET平台。 我很惊讶没有人提到它。
我在C#工作了5年。 我查看了一些Java代码,但我从未编写过代码。 我相信Java有点类似于C#,所以如果你精通一个我认为你可以拿起另一个就是几天。
一个想法可能是创建自己的语言/编译器。 我想创建(或看到创建)的那个将是一个汇编语言级别的编译器,其面向对象的语法非常类似于Python ...但是使其成为类型语言。 您可以从基本的原始二进制类型db,dw,dd开始,然后添加到这些...函数和方法可以在高级代码中自由混合汇编语言。 现在,我认为这将是一个有趣的项目?
绝对尝试Haskell或Smalltalk或Forth。
我会说Smalltalk最有用,而Forth会让你远离x86 asm和C废话。 编写接近硬件的东西的方法不止一种。
你为什么不试试OCaml? 如果你曾经(遗憾地)回到.NET世界 - 你将在行李中了解F#。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.