一:
最近学了一个clojure,挺好的,这就让我想到一个问题,Java语言老是被说差,差在哪里呢?
是啊,用了会clojure,我也感觉Java这个语言挺麻烦的,到处都是模式,很死板的感觉,但是这种死板让项目始终是有不错的工程结构等。
从目录结构到语法,都是死死的感觉,但是这种死死的可以让IDE很容易的静态解析,能在你没有运行代码之前就帮你发现大多数潜在的问题。
我自己也想过,如果用纯脚本语言来写一个大项目,会不会后期很烂呢?没有静态解析的话改一个地方,其他哪些受影响都不知道。
几行perl代码会让你看得很爽,感觉这代码很有创造力,但是给你1K大小的perl文件你就不会这么想了,毕竟 perl是唯一一门在rsa加密后看起来差不多的语言。
二:
最近也看了Spring的SpEL,是在java上操作的一个小小脚本语言,用来各种赋值,这个思路挺好的,就是用脚本语言在静态语言世界里面进行灵活的操作。
三:
最近看知乎一个问题:章鱼的智商到底有多高,为什么有人说它们的智商可以统治世界?这个回答 说了,章鱼脑子只有40%的神经元,发出的信号是一个抽象程度很高的信号。四:
回头看Java世界,maven把各种不同功能包细分和管理得很好,这些包就像是linux下的每一个命令一样,一个脚本语言,就可以把这些东西利用得很灵活来实现我们的一些想法或目的。
五:
clojure选择在JVM平台上实现的一个原因不就是因为库多么,可以让clojure程序少很写多代码就实现一些功能。
六:
就像章鱼的脑子一样,想写功能,我们只需要引入各种包,然后写一个抽象程度高点的代码就可以了。问题也就来了,什么样的抽象程度算是足够抽象?
对于json的lib来说,你给我一个JSON字符串,给我一个CLASS类,我返回你这个类的实例,这就已经足够高了,不能再有别的要求了。
但是对于我们平常开发的项目来说还不够,有了库我们却依然需要写大量的代码,因为那些库并不是为我们的指定的软件编写的,为了适应广泛的需求而牺牲了部分舒适性。
所以以后的软件开发,我们可以在各种java库的基础上再进行一次封装,封装成只需要传几个参数就可以完成在某一领域功能下很大功能的库。
以后,我们就可以写简单的脚本来操作那些库。
比如类比数据库 CREATE TABLE XXX... 之后就可以进行各种INSERT,UPDATE了,那我们可以在项目启动后让项目支持脚本 def entity xx ... 然后就可以各种save update 了。
有很多公司的工作流引擎就是这种模式,而我们可以不只是让工作流支持脚本啊。
封装到一定程度,软件开发就可以这样了:
项目启动起来就像linux启动起来一样,只是一个平台,然后用脚本产生配置,然后才会产生相对应的服务。
当然,这在前端这一块目前还不行,界面不确定性因素太多了。