※ 引述《dharma (达)》之铭言:
: 一些人觉得Java在物件导向上面做的没有Ruby和Smalltalk纯粹。但是最新出现的用Java
: 实现的语言Groovy解决了这些问题。
: https://zh.wikipedia.org/wiki/Java
: 只稍微会Java
: Ruby和Smalltalk完全没接触过
: 那么维基说Java的物件导向不够纯粹
: 是指什么?
我猜意思应该是 java 还有原生型态 ( primitive types ),例如常见的数字
int num = 10;
你不能把 10 当成一般 java 物件那样呼叫一些操作方法,
例如你没办法呼叫 10.hashCode() ,因为这边的 10 不是物件,只是数值
: 看这篇介绍Groovy
: http://www.codedata.com.tw/java/groovy-tutorial-1-understanding-groovy/
: Groovy解决Java物件导向不够纯粹的问题
: 是指Groovy写法比较简洁
: 不像Java过度严格囉嗦
“语法是否简洁”与“是否为纯粹物件导向”应该是两种特色
只是近年推出的新程式语言多半同时具备这两种特质罢了
不过,路过的我忍不住想提醒你,虽然贴上来的文章作者功力不错,
有关 Groovy 的描述也没错。
但要是你没有什么程式语言基础,然后在文章里又看到像这样的说法
“因为某 G 语言具备某某特色... 所以比某 J 语言容易学又不烦锁没包袱”
.... 这类的评论看看就好。
作者讲这种话的时候已经会 java,很可能不觉得致力和 java 相容的 groovy 难学。
以我的经验,就算会 java 才学 groovy ...都不觉得它是很简单的语言。
你会容易写出可以执行的东西没错,但这样就代表新手会好学好写吗?
别的不说,试着看完 groovy 教学文章以后能不能立刻完整解读
长一点的 gradle 建置设定档,然后写出自己的客制流程就好
这时候你可能会发现,原来程式语言的语法洗炼与否跟难度复杂度是两回事。
很多地方有撇步要花时间搞懂,跟先前快乐入门的时候完全不一样
java 语法是比较烦没错,当初想学其他语言的时候也是这样嫌弃它,
但现在学会其他语言反而回头欣赏 java 的美,觉得它相对容易掌握。
只要你抓住语法上的重点,很多时候甚至可以用推敲的就融会贯通,
不用写完程式再编译就能知道哪些没写过的语法正确,哪些会错,
因此容易拿来实现各种东西。
相反的如果一种语言有许多地方都在不知情的状况下让编译器给你一些方便
或是智能猜测型态自动转换。虽然写小程式很方便,
但只要程式越写越大变复杂,到时该花的学习时间一点都少不了,
这时候反而是难以驾驭的。
jvm 的新手语言还是首推 java,毕竟语法洗炼和语言简单是两回事。