脚本语言与静态语言共存

一:

最近学了一个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启动起来一样,只是一个平台,然后用脚本产生配置,然后才会产生相对应的服务。

当然,这在前端这一块目前还不行,界面不确定性因素太多了。

时间: 2024-11-05 08:08:42

脚本语言与静态语言共存的相关文章

编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别

一.编译型和解释型 我们先看看编译型,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码.这个过程说得专业一点,就称为编译(Compile),而负责编译的程序自然就称为编译器(Compiler).如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了.但对于一个比较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织.这时编译各个文件时就会生成目标文件(Object  

什么是动态语言和静态语言?静态语言动态语言的区别

定义 通常我们所说的动态语言.静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language).还有一个 Dynamic Programming Language (动态编程语言),静态编程语言. 动态类型语言:在运行期间检查数据的类型的语言.用这类语言编程,不会给变量指定类型,而是在附值时得到数据类型.如:Python和ruby就是典型动 态类型语言.很多脚本语言vbscrīpt,javascrīpt也是这类语

动态语言和静态语言、编译型语言和解释型语言、强类型语言和弱类型语言的分析

一.动态语言和静态语言1. 我们常说的动.静态语言,通常是指: 动态类型语言 Dynamically Typed Language 静态类型语言 Statically Typed Language 可能还有:动.静态编程语言 Dynamic\Statically Programming Language 2.    动态类型语言:在运行期间检查数据的类型的语言例如:Ruby\Python这类语言编程,不会给变量指定类型,而是在附值时得到数据类型.Python是动态语言,变量只是对象的引用,变量a

多态 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

多态 类具有继承关系,并且子类类型可以向上转型看做父类类型,如果我们从 Person 派生出 Student和Teacher ,并都写了一个 whoAmI() 方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def whoAmI(self): return 'I am a Person, my name is %s' % self.name clas

动态语言、静态语言及动态语言的“鸭子类型“

动态语言与静态语言: 所谓动态和静态,是指程序中类型.类型又是指class,int等定义,比如变量的类型,函数的入参类型,返回值类型.动态类型语言,表示在编写程序的时候,无需制定类型,是运行时检查:静态类型语言,表示在编写程序的时候,需要显式地制定各种类型,在编译的时候就会被检查. 有人说静态类型语言叫强类型语言,是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行. 例如C/C++/Java/C# 有人说动态类型语言叫弱类型语言,是指不需要进行变量/对象类型声明的语言,一般情况下不需要

解释型语言和编译型语言、弱类型语言和强类型语言、动态语言和静态语言的区别

计算机是不能理解除了机器语言以外的任何语言所以必须要把程序员所写的程序语言都翻译成机器语言才能执行程序.程序语言翻译成机器语言的工具,叫做翻译器. 编程语言  ————> 翻译器  ————> 计算机语言(二进制) 翻译器翻译的方式有两种:一是 编译,二是 翻译.两种方式之间对区别在于翻译的时间点不同. 编译器:是在代码执行之前进行编译,生成中间代码文件 解释器:是在运行时进行及时解释,并立即执行(当编译器以解释方式运行的时候,也称之为解释器) 举个栗子: 编译型语言:就像是请客的时候要先把所

动态语言和静态语言

动态语言Dynamically Typed Language例如:ECMAScript(JavaScript).Ruby.Python.VBScript.php也叫动态类型定义语言与静态类型定义相反,一种在执行期间才去发现数据类型的语言,动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化.动态语言的类型检查是在运行时做的.它的优点是方便阅读,不需要写非常多的类型相关的代码:缺点是不方便调试,命名不规范时会造成读不懂,不利于理解等.目前java平台下的

强/若类型语言 动/静态语言

弱/强类型指的是语言类型系统的类型检查的严格程度.动/静态指的是变量与类型的绑定方法. 弱类型相对于强类型来说类型检查更不严格,比如说允许变量类型的隐式转换,允许强制类型转换等等.强类型语言一般不允许这么做. 弱类型语言 变量在进行运算时,会做隐式的转换类型强类型语言 变量的值的数据类型一旦确定,使用时不能改变 动态语言:编译时不知道数据类型,只有在执行时才知道数据类型静态语言:编译的时候进行数据类型检查,知道每一个变量的类型 静态类型指的是编译器在compile time执行类型检查,动态类型

【动态语言和静态语言】动态语言和静态语言的认识,定义

源:http://www.cnblogs.com/spmxlBlog/archive/2010/06/28/1766832.html 定义: 强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行. 例如C/C++/Java/C# 弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编译型的). 例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等.