当前位置: 首页 > 编程日记 > 正文

艰辛的面向对象

为什么80%的码农都做不了架构师?>>>   hot3.png

所有的操作系统都不是面向对象的。

所有的操作系统都是基于函数的。ANDROID框架里面的好多类也是基于函数的。很多都是静态的方法。这个框架包括两个部分:一是JAVA部分,一是本地类。本地类不用说全是函数,JAVA部分则很多都是静态的。而所有这一切,象极了JAVA里面的开发环境:一切都不过为了创造一个纯粹的面向对象的环境。甚至JAVA语言本身,J2EE框架的全部,都逃不出这个范畴。

有点“举国”的感觉。

费这么大力气,到底值得吗?

一切的一切,最终目的都是为了更加贴近程序员或者说人类的语义。都是为了解决语义鸿沟的问题。JAVA是进步,ANDROID是进步,下一步又将会是什么呢?

ONTOLOGY?好像不太可能。因为ONTOLOGY其实已经超越自然语言,进入下一个阶段:科学语言或者说哲学语言。这样的事实本来在人类本身是很自然的,我们本来也是先有自然语言,然后再有学术语言。事实上,也是在自然语言之后再有的所谓机器语言。因此,从机器语言向自然语言的发展可以算是某个程度上的一种语言或者说描述论意义上的回归。也因此,学术语言其实是一种完全相反的方向。这可能是它现在为什么没有并且以后也不太可能得到欢迎的原因。所谓的语义网看起来的确是遥遥无期。

与其这样,还不如在面向对象上面多花点精力,比如把语义网的语言层次再向下降一个层次,重新回到自然语言或者面向对象。这样也许会得到更好的结果。总之,无论如何有些东西需要改变,这是毫无疑问的。比如说通过对语言的更进一步或者说纠正方向后的研究,我们发现一种更好的方法或者说更贴近自然语言的方法。总之,需要对语言本身作进一步的研究而不是一条路走到死。

这篇文章的意思其实是要提醒我们,面向对象的环境来之不易,所以一定要珍惜。要好好学习面向对象的思想,要严肃对待面向对象这个东西。试想给你一堆函数环境,这样的东西现在的程序员很少会有人喜欢的。有点回到原始社会的感觉是吧?

其实我更PREFER的容器的概念。面向对象只是一种非常抽象的方法论提法。但是容器非常具体。并且这个容器,指的并不是对象容器,而是指具有理高语义层次的所以具有更具体语义的所以使得它更贴近人类语义的像SERVLET,EJB,ACTIVITY这样的容器。意思并不是说描述的或者API的层次越高越好,而是说,这是个很好的方向。从抽象的面向对象到更具体的语义编程环境,本来就是一大进步。或者说,我们作为程序员,更喜欢的正是这样的东西是吧。事实上,这也是业界本来的发展方向--商业总是朝着让她的“客户”HAPPY的方向前进。朝着相反方向前进的供应商,很少会有好果子吃的。这是市场经济的必然结果是吧。

有些人动不动就喜欢提底层,提实现机制,比如SOCKET。这些东西。但是却连自己的领地都还不熟悉。比如现在很多程序员并不能真正体会什么是真正的面向对象,却总喜欢一钻就到底层。一说就到底层。好像自己写个SOCKET来通信是多么光荣的事情。这不是正确的工作态度。正确的工作态度是,尽量精通,深入地理解你自己的领地。然后在这个基础上,基于需要出发作一些有针对性的研究比如IO,比如硬件特性,比如数学,比如网络。但是这些东西始终不是你本来的目标,并且还要记住:它们之所以是现在这个样子也是迫不得已的。不要以为那些东西就是好的,就像不要以为机器语言就是好的一样。那么到底什么才是好的呢?---好的就是好的。产品是好的,客户满意度是好的,易用性是了的。好的只应该STICK在产品这个概念的周围,离开了产品,便没有什么是好的。面向对象不底层,但它是好的,因为它对于产品的构建好,对于生产过程好,对于维护过程好,对于相互沟通理解好。而不是因为它的某些技术特性或深度。它的确非常深奥,但这并不导致能从它推导出它是好的这样的结果。一切关于“好”的推论,都应该从用户价值开始。离开了用户价值,便没有什么是好的。当然这是从生产的角度考虑的结果。如果从纯学术的角度考虑,无论对任何事物具有非常深入,深刻的理解,都不是一件坏事。但是同学们,在这样思考以前,请确定你要走或正在走学术的道路。

你要确立你的价值观。否则就会失去方向。

你很幸福,Don't ruin it.

转载于:https://my.oschina.net/digerl/blog/88949

相关文章:

计算机网络第一课

1.IPv4与IPv6的区别是什么?在windows 7以上系统中,在设置本地IP地址的时候经常会看到同事含有IPV4协议项与IPV6协议项,并不同于以往windows xp系统中仅有TCP/IP协议项,不少朋友都觉得比较奇怪,询问编辑IPv4与IPv6的区别…

常用函数集农历函数

常用函数集农历函数原来是vb代码,重新整理为VB.NET版的,并在VS2003中编译通过Imports System.MathPublic Class UCnCalendarPrivate Structure SolarHolidayStructDim Month As IntegerDim Day As IntegerDim Recess As IntegerDim HolidayName As Strin…

微软发布代码智能新基准数据集CodeXGLUE,多角度衡量模型优劣

来源 | 微软研究院AI头条编者按:代码智能(code intelligence)目的是让计算机具备理解和生成代码的能力,并利用编程语言知识和上下文进行推理,支持代码检索、补全、翻译、纠错、问答等场景。以深度学习为代表的人工智能…

Spring从菜鸟到高手(四)(上)使用JdbcTemplate类实现用户登陆验证、批量更新

标签:Spring java JdbcTemplate Spring从菜鸟到高手 绝缘材料原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://tonyaction.blog.51cto.com/227462/42042看了我前面几篇文章的朋…

CSS盒模型及边距问题

盒模型是CSS的基石之一,页面的每一个元素都被看作一个矩形框,分别由外边距,边框,内边距,内容组成, 在CSS中,width和height的值指的是内容的宽高,增加外边距,边框&#xf…

区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets

首先,这两个函数不是C标准库中的函数, int getch(void) //从标准输入读入一个字符,当你用键盘输入的时候,屏幕不显示你所输入的字符。也就是,不带回显。 int getche(void) //从标准输入读入一个字符&…

无限想象空间,用Python玩转3D人体姿态估计

前言姿态估计,一直是近几年的研究热点。它就是根据画面,捕捉人体的运动姿态,比如 2D 姿态估计:再比如 3D 姿态估计:看着好玩,那这玩应有啥用呢?自动驾驶,大家应该都不陌生&#xff0…

Mac中将delete键定义为删除键

在Mac中,delete键实际是退格键(Backspace),fndelete才是删除键。这也是从Windows转到Mac时不习惯的地方之一。 通过安装DoubleCommand软件可以解决这个问题。安装后,在System Preferences中找到DoubleCommand找打开在E…

CHIL-SQL-MIN() 函数

MIN() 函数 MIN 函数返回一列中的最小值。NULL 值不包括在计算中。 SQL MIN() 语法 SELECT MIN(column_name) FROM table_name 注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 SQL MIN() 实例 我们拥有下面这个 "Orders&quo…

Google排名第一的语言,引数十万人关注:搞定它,技术大牛都甘拜下风

毋庸置疑,Python越来越被认可为程序员新时代的风口语言。无论是刚入门的程序员,还是年薪百万的 BATJ 的大牛都无可否认:Python的应用能力是成为一名码农大神的必要项。 所以,很多程序员把Python当做第一语言来学习。 但对于Python…

CSS滤镜详解

CSS滤镜详解 简介〓 设置文字透明层次,模糊效果,给文字加光晕等这些本来要靠图片才能处理的效果,现在CSS可以既简单又快速的把它实现了……接着往下看就知道了。 〓正文〓 语法:STYLE"filter:filtername(fparameter1, fpa…

php实现单链表

<?php //单链表的存储结构 class Node{ public $data;//数据域 public $next;//指针域 指向下一个结点 function __construct(){ $this->data null; $this->next null; } } //单链表数据类型 class LinkList{ public $data; public $next; function _…

2017-2-23 C#基础 中间变量

用中间变量做这个题 1、“请输入年份&#xff1a;”&#xff08;1-9999&#xff09; “请输入月份&#xff1a;”&#xff08;1-12&#xff09; “请输入日期&#xff1a;”&#xff08;要判断大小月&#xff0c;判断闰年&#xff09; 判断输入的时间日期是否正确 2、计算输入的…

HTA的简单应用

HTA简介&#xff1a;HTA是HTML Application的缩写&#xff08;HTML应用程序&#xff09;&#xff0c;是软件开发的新概念&#xff0c;直接将HTML保存成HTA的格式&#xff0c;就是一个独立的应用软件&#xff0c;与VB、C等程序语言所设计的软件没什么差别。下面是一个HTA的例子&…

300亿美元,AMD为什么要买Xilinx?

作者 | Just来源 | CSDN(ID:CSDNnews)自2015年5月&#xff0c;Intel&#xff08;英特尔&#xff09;以167亿美元收购FPGA生产商Altera后&#xff0c;半导体行业接连传出大整合。上个月&#xff0c;NVIDIA&#xff08;英伟达&#xff09;宣布以400亿美元收购芯片设计公司Arm&…

PIM-SSM简介

源特定组播(SSM&#xff1a;Source Specific Multicast)是一种区别于传统组播的新的业务模型&#xff0c;它使用组播组地址和组播源地址同时来标识一个组播会话&#xff0c;而不是向传统的组播服务那样只使用组播组地址来标识一个组播会话。SSM保留了传统PIM-SM模式中的主机显示…

MyBatis开发入门二:一对多连表查询

1. 步骤&#xff1a; (1). 加包(2). 编写db.properties&#xff1b;编写conf.xml&#xff0c;将db.properties加入到conf.xml&#xff1b;引入别名(3). 建立实体类(4). 编写sql操作对应的***Mapper.xml文件(5). 将sql操作对应的***Mapper.xml文件注册到conf.xml文件中(6). 编写…

ASP.NET里的事务处理

出自&#xff1a; http://blog.csdn.net/ycl111/ 事务是一组组合成逻辑工作单元的数据库操作&#xff0c;虽然系统中可能会出错&#xff0c;但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误&#xff0c;事务中的所有修改都将永久成为数据库的一部…

JAVA的正则表达式语法

Java 正则表达式表达式意义&#xff1a;1.字符x 字符 x。例如a表示字符a\\ 反斜线字符。在书写时要写为\\\\。&#xff08;注意&#xff1a;因为java在第一次解析时,把\\\\解析成正则表达式\\&#xff0c;在第二次解析时再解析为\&#xff0c;所以凡是不是1.1列举到的转义…

应届生失业率或继续上升?别怕,这份秋招指南请收好!

受疫情影响&#xff0c;今年的就业形势基本上没跑了&#xff1a;“各行各业&#xff0c;大小企业&#xff0c;全面缩招&#xff01;”据国家统计局7月份的最新数据显示&#xff1a;20-24岁大专及以上人员&#xff08;主要为新毕业大学生&#xff09;失业率比去年同期高 3.3 个百…

微信小程序把玩(三十五)Video API

原文:微信小程序把玩&#xff08;三十五&#xff09;Video API电脑端不能测试拍摄功能只能测试选择视频功能&#xff0c;好像只支持mp4格式&#xff0c;值得注意的是成功之后返回的临时文件路径是个列表tempFilePaths而不是tempFilePath文档写的有点问题。 主要属性&#xff1a…

使用.NET发送邮件

出自&#xff1a; http://blog.csdn.net/ycl111/如果你曾经使用过ASP来发送邮件&#xff0c;你大概会使用CDONTS,但是在.NET里&#xff0c;发送邮件的功能已经封装进 .NET Framework的System.Web.Mail的命名空间里了&#xff0c;使用这个命名空间下类&#xff0c;就可以很容易…

采摘工人月薪十万却无人应聘,英澳农场求助 AI

作者 | 神经小兮来源 | HyperAI超神经金秋时节&#xff0c;本是收获的季节&#xff0c;但是英国、澳大利亚等地的果农却愁容满面。眼看着日渐成熟的瓜果就要烂在地里&#xff0c;却还招不到采摘工人。缺人&#xff0c;成为果农们眼下急需解决的问题。虽然大型联合收割机早已普及…

好记性不如烂笔杆-android学习笔记二 Acitvity lifecycle 生命周期

7&#xff0c;//Acitvity lifecycle 生命周期/***1,一个Activity就是一个类&#xff0c;并且这个类要继承Activity*2&#xff0c;复写onCreate方法*3&#xff0c;每个Activity需要在Androidmanifest.xml文件中配置*4&#xff0c;为Activity添加控件*/ 1 public class Activity …

hdu5740

考验代码能力的题目&#xff0c;感觉网络流一要求输出方案我就写的丑 http://www.cnblogs.com/duoxiao/p/5777632.html 官方题解写的很详细 因为如果一个点染色确定后&#xff0c;整个图的染色也就确定了&#xff1b; 对于两个点u和v, 令它们之间的最短路是dis(u,v), 那么交换它…

xml操作类(转载)

作者&#xff1a;未知 请与本人联系 <%Class XMLDOMDocument Private fNode,fANode Private fErrInfo,fFileName,fOpen Dim XmlDom 返回节点的缩进字串 Private Property Get TabStr(byVal Node) TabStr"" If Node Is Nothing Then Exit Property …

对HDS AMS 2000+巡检案例

1. 使用工具&#xff1a;笔记本&#xff0c;网线一根&#xff0c; 2. 使用软件&#xff1a;vmware虚拟机&#xff08;安装XP P2系统&#xff0c;最好为P3&#xff09;&#xff0c;HSNM2-1152-W-CLI-P01.exe&#xff08;AMS 200管理软件&#xff09;&#xff0c;jre…

用Python实现坦克大战游戏 | 干货贴

作者 | 李秋键出品 | AI科技大本营&#xff08;rgznai100&#xff09;《坦克大战》是1985年日本南梦宫Namco游戏公司在任天堂FC平台上&#xff0c;推出的一款多方位平面射击游戏。游戏以坦克战斗及保卫基地为主题&#xff0c;属于策略型联机类。同时也是FC平台上少有的内建关卡…

SPU、SKU、ARPU是什么,我来记录一下我的理解

在电商系统里经常会提到“商品”、“单品”、“SPU”、“SKU”这几个词&#xff0c;那么这几个词到底是什么意思呢&#xff1f;既然不知道是什么&#xff0c;那么我们就查一下&#xff1a;SPU Standard Product Unit &#xff08;标准化产品单元&#xff09;&#xff0c;SKUst…

用C#操纵IIS(代码)

using System;using System.DirectoryServices;using System.Collections;using System.Text.RegularExpressions;using System.Text;/*** author 吴海燕* email wuhy80-usualyahoo.com* 2004-6-25 第一版*/ namespace Wuhy.ToolBox{/// <summary>/// 这个类是静态类。…