博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数式编程学习之路(11)
阅读量:5770 次
发布时间:2019-06-18

本文共 1352 字,大约阅读时间需要 4 分钟。

编程模式

很难去表达这个东西,但也没有办法下定义,我们来看下:

SQL:Structured Query Language

SQL 是高级的语言,它允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解其具体的数据存放方式。而它的界面,能使具有底层结构完全不同的数据库系统和不同数据库之间,使用相同的 SQL作为数据的输入与管理。它以记录项目〔records〕的合集(set)〔项集,record set〕作为操纵对象,所有 SQL 语句接受项集作为输入,回提交的项集作为输出,这种项集特性允许一条 SQL 语句的输出作为另一条 SQL 语句的输入,所以 SQL 语句可以嵌套,这使它拥有极大的灵活性和强大的功能。在多数情况下,在其他编程语言中需要用一大段程序才可实践的一个单独事件,而其在 SQL 上只需要一个语句就可以被表达出来。这也意味着用 SQL 可以写出非常复杂的语句。

SQL 同时也是数据库的。

SQL 包含3个部分:

  • “”(DDL : Data Definition Language)
  • “”(DML : Data Manipulation Language)
  • “”(DCL : Data Control Language)

再看下Linq引入的一些概念:

匿名对象,匿名方法,对象创建,隐式类型等,另外就是类定义,泛型,等,其实也是在定义.也逃不出DDL的范畴.

DML的CRUD, 现代编程中的ORM, 还有集合操作等,都有共性.

DCL定义的更精确,把权限控制用3个关键字给定义出来了,grant,deny,revoke, 而现在编程语言,在涉及权限方面还比较复杂,当然最终泛化后还是一样.

由此可见,一是编程语言最终的特性,还是在哲学的大范畴里,而声明式编程的威力,则把占在了制高点上,SQL虽然早在70年代就发明出来,但现在来看,它抽象的非常精简,现代编程语言泛化后,正在向SQL这种声明式进化.

以C#为例,新特性已经能部分满足DDL, DML, 但DCL在程序设计里还差一大截,必竟对功能的控制,比起对数据的控制要困难得多.

声明式编程包含了和,故采用这两种编程范型的编程语言如或都属声明式编程。其他例子有。

由此可见,函数式编程是声明式编程的一部分,逻辑编程有prolog.

声明式编程里的DSL有比如,SQL,CSS,正则表达式等,老赵翻译自Anders的演讲系列把这些说的很清楚,由此可见,Anders的确是语言大师.

另外通过查阅资料发现,很多这些概念,都是出现在70年代附近,而最近几年才逐步被重视起来的原因,应该是受到了软硬件发展的限制,必竟理论超越环境几十年很正常.

然后就是元编程,不知道理在的模板技术算不算,在HTML世界,模板变得越来越重要,但也造成模板语言百花齐放,如果有一门通用的比如象SQL这样的语言,相信是程序员的巨大福利.

W3C只顾定义Html, CSS这类的东西,却把最重要的Template给遗忘了真是不够明智,如果有一门通用的Template,那什么PHP, JSP, ASP, ASPX, Razor等都可以统一起来了.

Template语言的真正统一和产生,才是互联网的第二代.整个互联网将从静态进入到动态

 

转载地址:http://mwiux.baihongyu.com/

你可能感兴趣的文章
使用nginx capture的注意事项
查看>>
PHPStorm.WebStrom等系列官方开发工具配置本地项目与运程服务器同步
查看>>
Node.js 8.9 LTS版本发布
查看>>
脱离“体验”和“安全”谈盈利的游戏运营 都是耍流氓
查看>>
慎用!BLEU评价NLP文本输出质量存在严重问题
查看>>
Facebook Sonar:一款可视化及交互式移动应用调试工具
查看>>
基于干净语言和好奇心的敏捷指导
查看>>
微软发布Azure Storage不可变存储功能的正式版本
查看>>
Node.js 2017企业用户调查结果发布
查看>>
JavaScript到底是面向对象还是基于对象?
查看>>
小米大数据:借助Apache Kylin打造高效、易用的一站式OLAP解决方案
查看>>
“软”苹果水逆的一周:杂志服务崩溃,新机型遭泄露,芯片首架离职
查看>>
拥抱PostgreSQL,红帽再表态:SSPL的MongoDB坚决不用
查看>>
软件测试工程师的核心竞争力是什么?
查看>>
数字时代的精益组织
查看>>
Servlet知识点总结
查看>>
个体重构:将重构应用到生活中
查看>>
Shippable提供了新的DevOps分析能力
查看>>
re:Invent大会第四天:为什么Lambda值得你更多关注?
查看>>
前端tree优化实践:渲染速度从14.65s到0.49s
查看>>