哪种物联网编程语言最热门

哪种物联网编程语言最热门,第1张

影响物联网IoT实施的最主要因素之一是人才缺口:现有市场供应无法跟上拥有物联网技术的工程师的需求。根据Canonical的研究,大约68%的公司正在努力为他们的物联网项目雇佣开发人员。但技能短缺的另一面是,职业前景对于具有物联网技术的专业人员来说是非常光明的。在这里,我们重点关注物联网中最常用的编程语言,即Java,C,C ++,Python,JavaScript和Go,然后分析专门从事这些语言的专业人员可以获得多少收入。我们还会考虑资历和地点等因素。

作为一个技术强国,美国在IT 薪资标准方面常常成为世界其他国家的基准。以下是根据Payscale的数据对美国顶级物联网IoT编程语言以及相应的开发者薪资数据的简要统计。

美国最热门的物联网编程语言的平均工资统计

平均而言,Java和C开发人员可以获得比物联网中使用其他语言的开发人员更高的薪水,尽管高级Go编程人员的薪水潜力最高、尽管初级和中级Go开发人员与其他同行相比低调,但Skilled Go的开发人员却是业内薪酬最高的开发人员之一。

从Java开始,我们来看看物联网IoT中最流行的编程语言的平均薪水。

Java:物联网技术最流行的编程语言

Java有多个应用领域,从后端编程到Android的移动应用。根据 Eclipse基金会执行的2017年物联网开发者调查,Java首次提供了用于物联网开发的编程语言列表,专门用于网关和云。

使用Java进行物联网开发的一个主要好处是便携性。Java没有任何硬件限制,这意味着您可以在计算机上编写和调试Java代码,并将其部署到几乎任何运行Java虚拟机的设备上。出于这个原因,许多公司选择聘请Java开发人员进行物联网项目。

根据Payscale的数据,美国Java开发者的平均薪水约为88万美元。瑞士的Java开发者的平均收入较高,每年约为96,000美元。与此同时,英国和以色列的Java开发人员的平均薪水则明显较低,分别为4万5千美元和33万美元。

Java开发人员的平均工资

但是,Java开发人员的平均工资可能不具代表性,因为根据相关技术人员的经验和资历,个人薪酬差别很大。例如,从Java初级到高级Java开发人员的薪酬跳跃在美国是66万美元到97万美元,在英国是从41,000美元到61,000美元。

Java在美国和英国的平均初级,中级和高级Java开发人员工资

我们对美国Java开发者工资的研究表明,不同州的平均薪水可能远高于全国平均水平。例如,加利福尼亚州的开发人员对美国开发人员的平均薪水最高(133万美元)。这一事实在很大程度上是该州IT总体高技能需求的一个功能。

C:嵌入式设备的关键编程语言

C编程语言接下来成为物联网IoT堆栈最喜欢的语言。然而,根据Eclipse基金会的说法,它被认为是受限设备开发的领先技术。

该编程语言提供对低级硬件API的直接访问。由于其与机器语言的相似性,C非常快速且灵活,使其成为处理能力有限的物联网系统的完美选择。

与Java类似,C开发人员的薪酬在世界各地差异很大。在美国,C开发人员每年可赚取约10万美元,而在瑞士,C开发人员的平均年薪为92,000美元。在我们分析的国家中,C专家的最低工资在英国。据Payscale称,英国年平均C开发人员薪水仅略高于4万美元。

C开发人员的平均工资。来源:Payscale

C级初级和高级开发人员的薪酬差异也很大。高级C开发人员的收入几乎是美国和英国入门级员工的两倍。

C在美国和英国的初级,中级和高级C开发人员的平均工资

C ++:Linux的第一语言

与其前身C一样,C ++已广泛用于嵌入式系统开发。但是,C ++的主要优势在于处理能力,在任务更加复杂时使其成为C的有用替代方案。

C ++最适合编写硬件特定的代码。它可与Linux,第一大物联网技术 *** 作系统配合使用。但是,与Java相比,它具有有限的可移植性。

与C开发人员相比,C ++工程师的薪水更低。我们的研究发现,C ++开发人员在以色列和丹麦的预计收入约为82-86,000美元,而在美国,这个数字仅为71,000美元。

平均C ++开发人员工资统计。来源:Payscale

然而,尽管美国的C ++开发人员平均费用较低,但经验丰富的专家在职业生涯后期可以达到六位数。

美国和英国的初级,中级和高级C ++开发人员的平均工资。

Python:面向数据的物联网系统的解决方案

作为最受欢迎的网络编程语言之一,以及科学计算的前沿技术,Python在物联网开发中也获得了巨大的推动力。 对于数据密集型应用程序,Python是一个不错的选择,特别是在管理和组织复杂数据时。

此外,由于语言的清晰语法,用Python编写的源代码非常紧凑且非常易读。这对于计算能力和内存有限的小型设备来说效果特别好,尽管速度不如C / C ++快。

美国的平均Python开发人员薪水约在71k美元左右,而拥有类似技能的开发人员则分别在以色列和瑞士分别可以获得约68-67k的薪水。

Python开发人员的平均工资。来源:Payscale

与其他一样,初级和高级Python开发人员之间的薪酬差距很大。

美国和英国的平均初级,中级和高级Python开发人员薪水

仔细观察数据显示,尽管全国平均水平相对较低,但在美国,Python开发人员的薪水可能会非常高。由于开发商需求迫切,供应量有限,某些州的薪酬可能高达14万美元。传统上,加利福尼亚州是为技术专家提供最高工资的州之一。当地的Python开发人员平均赚取了大约135万美元。

JavaScript:事件驱动物联网应用的最佳解决方案

根据年度StackOverflow开发者调查显示,JavaScript是过去五年来最流行的编程语言之一,是现代Web开发中的核心技术。

在许多其他应用领域中,JavaScript是物联网编程语言中最常用的构建事件驱动系统。它可以管理连接设备的大型网络,并且在需要处理多个任务而无需等待其他任务完成时可以胜任。JavaScript对IoT的主要优势之一是非常节约资源。

随着IBM和三星等主要公司在他们的物联网项目中积极采用JavaScript(即Nodejs),对具有物联网(IoT)体验的JavaScript开发人员的需求仍然很高。这意味着能够全面的提高薪水。

瑞士的JavaScript开发者平均可以赚取约96k美元。令人惊讶的是,美国JavaScript专家的平均薪水要低得多,开发者可以得到69万美元。

全球JavaScript开发人员的平均工资。来源:Payscale

不同州之间的薪资数据差别很大:例如,研究发现,康涅狄格州,马萨诸塞州,加利福尼亚州和纽约州是JavaScript开发者收入最高的美国州,平均薪资介于10万美元至14万美元之间。

同样,根据经验,JavaScript开发人员的工资差别很大:美国的专业JavaScript开发人员平均可赚取10万美元,英国则可赚取6万美元左右。

美国和英国的平均初级,中级和高级JavaScript开发人员工资

Go:坚固的技术堆栈为复杂的物联网网络提供动力

Go是一款开源编程语言,由Google创建。尽管它不能像语言那样拥有同样广泛的用途,但我们之前专注于这一点,它是在您的物联网系统内建立通信层的强大技术。

Go语言关于物联网的主要优势是并发性和同时运行多个进程(数据输入和输出)的能力。这使得构建由多个传感器和设备组成的复杂IoT网络变得更加容易。

虽然它已被评为美国最高收入技术(根据最新的StackOverflow开发者调查),但美国的Go平均薪水相当平稳 - 约为73,000美元,而英国则为43,000美元。

根据最近的调查显示,由于全球Go开发者工资数据不足,我们将重点关注美国和英国这些Go开发者人数最多的国家的薪水。

在美国和英国的平均Go开发者工资。来源:Payscale

高技能的Go开发者在美国可以获得高达14万美元的收入 - 几乎是初级Go程序员的三倍,是英国高级Go开发者的两倍。

在美国和英国的平均初级,中级和高级Go开发人员工资

结论

正如我们所看到的,物联网中最热门编程语言的开发人员的工资差别很大,并且取决于许多关键方面。为了理解这些信息,重要的是要看到更大的空间,并能够识别现有的市场趋势。

以上由物联传媒提供,如有侵权联系删除

最近三个同时发行的版本都有Agent Modeling Platform,但是自Kepler以来,就没有代码更改了。 这可能是项目经理Miles Parker迁至由Mylyn项目经理Mik Kersten于2012年初创立的Tasktop公司的最新结果。
露娜项目
该图显示了项目数量(左栏)和数百万行代码(右栏)。 Luna是同时发布的项目,数量最多。
即使使用SCA工具 ( 服务组件体系结构工具 )(顶级SOA平台(面向服务的体系结构)的子项目),自开普勒以来几乎没有代码更改。
自2013年10月以来,Persistence和ORM框架EclipseLink中的代码更改数量急剧下降。
Eclipse建模框架
在此同步发行中首次亮相的八个Eclipse项目中,有许多都使用Eclipse Modeling Framework(EMF):
使用Sirius,可以非常简单地为特定于域的EMF模型创建图形编辑。 编辑是数据的(部分)视图,显示为图形并可以更改。 自去年5月起,Sirius由法国Obeo公司开发。 这也是Eclipse项目,以前是Obeo的一部分,在Luna的10版中可用。 Arduino Designer是另一个不错的应用程序。 这是一个针对儿童的基于Eclipse的开发环境,感谢Sirius,这台小型Arduino计算机可以进行图形编程。
还请参见: Eclipse,NetBeans或IntelliJ:哪个是最好的Java IDE?
通过定义数据模型与表面之间的映射和绑定, EMF Client Platform 13使得SWT,JavaFX和/或Web应用程序可以用于修改EMF数据。 EMF表单是一个核心组件,可用于创建基于表单的编辑器。 还有两个带有EMF数据的桌面应用程序可以代替Innoopract解决方案使用:Sphinx 08 von itemis和来自Obeo的Sirius中使用的扩展编辑框架(EEF)。
EMFStore 13的开发由Innoopract进行。 这是一个版本管理框架,专门为EMF模型设计,用于检测和合并不同版本的模型之间的冲突。 EMFStore与CDO模型库直接竞争,该库包含在Luna的43版中。
业务流程模型
项目业务流程模型和表示法(BPMN2)将BPMN(业务流程的图形表示形式)实现为EMF模型。 对象管理小组(OMG)于2011年初发布了20版。该实现可以说是成熟的,在去年仅进行了很小的修改,并将版本增加到10。
BPMN2 Modeler 102是用于在BPMN 20中创建和编辑业务流程和工作流的图形编辑器。 在Eclipse中,曾经有一个BPMN Modeller项目在2011年末存档。由Red Hat或JBoss运行的BPMN2 Modeller自2011年中以来一直是Eclipse项目,因此与BPMN Modeller项目并存了半年。与其他开发商。 除了Java之外,基于BPMN2 Modeller的整个技术栈都是Luna的一部分:上述BPMN2和Graphiti基于图形建模框架(GMF),而后者又基于图形编辑框架(GEF) )和EMF。
Paho,QVTd和XWT
Paho以Java,C / C ++,JavaScript,Python和Go提供了MQTT(消息队列遥测传输)协议的实现。 在机器对机器领域中,该协议被称为物联网。 自2012年以来,Paho只是一个Eclipse项目,而Java实现在Luna的10版中。
QVTd (QVT声明式)与可 *** 作QVT和ATL(阿特拉斯转换语言)一起是三个模型到模型转换(MMT)子项目之一。 这三个都在使用Luna。 查询视图转换(QVT)是对象管理组的规范,由 *** 作,关系和核心部分组成。 QVTd当前是Core实施的一部分。 QVTd团队希望在一年内填补关系和核心方面的空白,并为每种QVT语言提供一个封闭的工具链,包括编辑器,解析器,模型,执行器,调试器和代码生成器。
使用XWT ,可以用XML声明性地定义SWT / JFace表面(包括数据绑定)。 也可以使用Windows构建器(也可以在Luna中找到)以图形方式完成。 XWT在项目e4中启动了Eclipse 4x实验室。 XWT尚未成为Eclipse 4x的一部分,自2012年底以来,它已成为一个单独的项目。 Luna带来了XWT的10版,Papyrus(另一个Luna项目)也支持该版本。
伊恩·布尔(Ian Bull)在Luna上最新项目和功能的年度十大倒计时已再次发布,非常值得一读。 作为Eclipse的一般信息来源,Foundation的YouTube频道和JAX TV的博客聚合者是planeteclipseorg ,也值得一试。

SOA(Service Oriented Architecture)和云计算以及SaaS一样,也是近年来IT业界的热点,其受关注度甚至超过云计算和SaaS。到2008年,从百度指数可以看出,“物联网”、“传感网”、“M2M”这三个词在中文网站中受关注度猛然升高。

焦点是集成

SOA、EAI(Enterprise Application Integration)、M2M乃至物联网等技术的焦点都是信息集成,目标是消除信息孤岛,实现泛在的互联互通。物联网技术的要点是要消除“物-物相联的信息孤岛”,而SOA的目标是要消除所有的IT信息孤岛。
SOA和EAI作为重要的应用集成中间件技术,必然是物联网所依赖的重要技术之一。
计算机应用系统的发展经历了“独立应用系统”(Packaged Applications)和“集成应用系统”(Integrated Applications)两个主要阶段,随着无处不在的网络技术的发展,早年普遍存在的“独立应用系统”越来越少,或“被集成”为“集成应用系统”的一部分。集成应用系统和技术的发展和演变主要围绕EAI和SOA两个理念,SOA是对更早出现的EAI技术和理念的演变和提升。SaaS技术也和SOA密切相关,都强调“服务”,可以说,SaaS是SOA技术和理念的一种扩展和特有的存在形式。
EAI是一种将使用各种不同技术和平台(CORBA、NET、JavaEE、LAMP等)构建的各种异构应用集成的一种技术和方法。国外往往习惯加Enterprise(企业级)这个词,说成是“企业应用集成”,但EAI不只是面向“企业”应用。可以毫不夸张地说,IBM、Oracle、微软、SAP等软件巨头都是EAI公司,早期的EAI公司还有很多,如BEA、WebMethods、SeeBeyond、TIBCO、VITRIA等等。
从架构上看,EAI主要有两种方式:Hub/Spoke和BUS。Hub/Spoke方式好比“中心城市和卫星城市”的构架,所有外延(Spoke)的系统都通过适配器(Adaptor)与中心枢纽(Hub)系统实现多点对一点(非P2P)连接和集成。BUS方式是一种更开放和通用的架构,使用一个统一总线,一般是MQ(Message Queue)或ESB(Enterprise Serice Bus),子系统把消息发送给总线,总线负责消息的路由,可实现P2P服务或总体应用集成。
SOA将各种应用或子系统看成一个个独立的、自包含并良好定义的服务或组件(Service Component Architecture),通过把这些服务进行组装,统一注册,并在网络系统中发布,让(泛在)网络上的别的应用能够查询、发现和调用这些服务,实现应用集成或构成新的应用。SOA(包括相关的Web Service、SOAP、SCA等理念)的出现,一统了CORBA、NET、JavaEE乃至LAMP(Linux、Apache、MySQL、Perl/PHP/Python)等几大技术阵营多年来“水火不相容”的“不妥协”竞争局面, 这也是物联网技术和产业发展值得借鉴的宝贵经验。SOA的愿景同样是实现“无处不在”的泛在计算和服务。
业界一般认为SOA这个理念和技术比EAI晚出现,其实也不尽然,笔者记得SOA的理念早在1996年就在BEA公司内部实现TUXEDO系统的升级开发时就提出来了。从SOA概念诞生之日起,围绕SOA与EAI的重合、关联及差异所展开的争论一直没有平息。顾名思义,EAI以集成应用为己任,通过接口标准化整合应用,而这恰恰也是SOA的核心任务。SOA将一些EAI功能模块进行封装,并使之标准化,以满足应用的整合、拼装和复用的需要。在Intranet(内网)、Extranet(专网)和Internet(互联网)部署环境中,独立应用一般运行在内网,EAI一般运行在专网, SOA一般运行在专网和互联网上。
SOA和EAI是一种相辅相成、共同发展的关系,EAI理念近几年提得较少,笔者在这里再重提EAI,是希望其在物联网、M2M应用中能够得以广大发扬,以MAI(M2M Application Integration)的方式实现物联网的互联互通和大集成,进一步发展到以M2M as a Service(MaaS)或TaaS(Things as a Service)的基于云计算的营运方式提供大规模IOT服务。

SODA:将设备“统领”起来

笔者在《物联网:技术、应用、标准和商业模式》一书中提出并强调“统一的数据交换标准”是物联网技术的核心,中间件是物联网产业发展的关键,也指出了面向于RFID应用的RFID中间件EPCIS、Savant和Edgeware(边缘件),以及ONS、PML等标准对总体物联网技术发展的重要借鉴意义。而基于SOA技术和理念的SODA(Service Oriented Device Architecture,面向服务的设备架构)的提出,包括类似的基于OSGi技术框架的ECF(Eclipse Communication Framework)等,对物联网数据标准和中间件的发展也具有重要的代表意义,值得深入研究。
SODA是一个由IBM和美国Florida大学发起的倡议(Initiative)和联盟(Alliance),通过引入基于服务(SOA)的编程模型,以规范和简化智能设备(Devices)与企业应用的集成。SODA致力于充分利用嵌入式系统和IT领域已有的标准,为智能设备与SOA技术的融合提供一个标准平台。 SODA的目标是让软件开发者能够像用SOA技术实现IT业务集成那样在诸如远程医疗、军事以及RFID等物联网系统中实现与传感器和执行器的集成。
具体来说,SODA提供标准接口,把硬件设备功能转换成与硬件无关的可调用的软件服务,实现如下目标:
1 将应用集成商与设备和传感器制造商无缝对接;
2 Integrate once, Deploy everywhere, 使用户专注于整体应用方案而不是陷于设备连接工作;
3 在应用和众多(泛在)设备协议之间建立一个通用接口和DDL(设备描述语言),形成统一数据交换标准;
4 作为一个中间件平台,为众多行业应用提供应用支持。
在SODA的系统架构中,设备集成接口定义是关键,也就是所谓的API(Application Programming Interface)和设备描述语言(Device Description Language)的定义。由于末端设备对实时性以及footprint大小要求较高,一般用REST而不是用SOAP来定义和实现Web Services接口。
目前SODA的工作基本上还处在研究阶段,中间件和数据接口标准作为物联网的关键和核心,在世界范围内还没有统一标准。SODA属于美国在开展的几个类似项目之一,欧盟已经有了基于SOA的HYDRA物联网中间件项目和EPoSS项目。中国急需参与或自己成立一个联盟,开展类似SODA这样的工作,提出自己的数据标准和中间件参考实现,这是占领物联网产业制高点的关键之一!

联联看
烟草物联网全国布局

9月16日,全国烟草行业物联网建设规划研讨会在无锡召开。中烟电子商务有限责任公司总经理秦前浩、江苏省烟草专卖局(公司)局长、总经理尉彭城等领导出席会议。
会议围绕国家局局长姜成康对行业物联网提出的“全面覆盖、全面感知、全程控制、全面提升”的总体目标要求,对行业物联网建设规划进行了全面的探讨和研究。与会代表着重就《烟草行业物联网总体框架与卷烟物流物联网规划》(讨论稿)的六个方面内容进行了认真的讨论交流,并对《规划》提出了改进完善的建议。
秦前浩在总结讲话中阐述了打造烟草行业物联网的意义,提出了深化行业物联网建设规划工作的具体思路,要求成立烟叶工商各物流环节的专业化工作小组,明确了先行试点单位、试点内容以及试点完成时间,确定了《规划》分步实施、全面实现的步骤和措施。他要求各单位强化组织领导,调动和发挥力量,汇聚资源,共同推动行业物联网建设工程。
尉彭城在讲话中指出,打造中国烟草物联网,是实现“卷烟上水平”的重要内容,是提升企业核心竞争实力的重要支撑。要多听取各方面的好经验、好建议,用创新的思路做好烟草物联网的规划工作,努力实现低成本、高效率。江苏烟草将在物联网规划与实施上作进一步的探索,为打造中国烟草物联网做出自己的贡献。
与会代表还参观了无锡物联网产业研究院以及无锡市烟草专卖局(公司)物流中心。

中移动“宜居通”亮相通信展

物联网应用“宜居通”是中移动在“2010中国国际信息通信展”上展出的、中移动首个基于TD的典型物联网应用。据了解,该业务已于今年5月17日在重庆试商用,随后在北京的一些小区进行了试推广。“宜居通”作为中移动的全国一类业务,在移动内部深受重视。一方面,它是首个基于TD的物联网产品,此前中移动的物联网业务很多用的是GPRS网络;另一方面,它将TD 3G网络以及家庭内部的小型传感网络融合在了一起;再有,此前中移动的物联网业务大多都是政企行业应用,而“宜居通”则是首个面向大众的物联网产品,能将中移动的用户资源与TD业务很好地结合在一起。
“宜居通”整合了家庭安防、智能家居和通信等各种功能。未来,用户可通过家中的TD家庭多功能信息终端和TD手机来 *** 控“宜居通”,如远程控制空调等家电,预警温度、烟雾等危险,使家中的各种设备通过传感器连成了一个小型传感网,并与TD网络进行信息交互。
据了解,“宜居通”最晚将在明年1月在全国大规模试商用,明年6月将正式商用。
为了这一产品的顺利推广,中移动专门制定了家庭场景下的传感网通信标准,目前产业链内上下游厂商针对此标准已经开发了相应的产品。
(作者系同方泰德国际科技公司CTO)周洪波

在本文中,我们将向您展示如何使用阿里云IoT平台轻松将Android Things连接到您的物联网(IoT)网络,我们将为该项目构造一个示例:功能性甲醛和温度传感器。有些人可能不了解Android Things,简单来说, 它就是让开发者可以使用Android开发工具开发嵌入式设备

项目设备清单

NXP iMX7D

设备接线图

在设置硬件之后,是时候在阿里云IoT平台上配置软件了。

首先,导航到物联网控制台并激活阿里云IoT。创建高级产品并添加产品属性定义:

Android Things设备开发

1、使用Android Studio创建Android Things项目,并授予网络权限

2、将“eclipsepahomqtt”存储库添加到gradle

3、通过I2C读取DHT12数据

4、通过UART获取Ze08CH2O数据

5、创建阿里云IoT连接并报告数据

设备启动后,您可以在阿里云IoT控制台上查看设备的实时数据, 设备管理 - >运行状态

此项目在GIT上的地址是:>集成开发环境是构筑行业应用的关键工具,物联网 *** 作系统必须提供方便灵活的开发工具,以开发出适合行业应用的应用程序。开发环境必须足够成熟并得到广泛适用,以降低应用程序的上市时间(GTMT)。集成开发环境必须具备如下特点:物联网 *** 作系统要提供丰富灵活的API,供程序员调用,这组API应该能够支持多种语言,比如既支持C/C++,也支持Java、Basic等程序设计语言;最好充分利用已有的集成开发环境。比如可以利用Eclipse、Visual
Studio等集成开发环境,这些集成开发工具具备广泛的应用基础,可以在Internet上直接获得良好的技术支持;除配套的集成开发环境外,还应定义和实现一种紧凑的应用程序格式(类似Windows的PE格式),以适用物联网的特殊需要。通过对集成开发环境进行定制,使得集成开发环境生成的代码,可以遵循这种格式;要提供一组工具,方便应用程序的开发和调试。比如提供应用程序下载工具、远程调试工具等,支撑整个开发过程。

java开发工具

1、MyEclipse(MyEclipseEnterpriseWorkbench)

MyEclipse应用开发平台是J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。MyEclipse应用开发平台结构上实现Eclipse单个功能部件的模块化,并可以有选择性的对单独的模块进行扩展和升级。

2、Eclipse

Eclipse是目前功能比较强大的JAVAIDE(JAVA编程软件),是一个集成工具的开放平台,而这些工具主要是一些开源工具软件。在一个开源模式下运作,并遵照共同的公共条款,Eclipse平台为工具软件开发者提供工具开发的灵活性和控制自己软件的技术。

3、NetBeans

NetBeans是开放源码的Java集成开发环境(IDE),适用于各种客户机和Web应用。SunJavaStudio是Sun公司最新发布的商用全功能JavaIDE,支持Solaris、Linux和Windows平台,适于创建和部署2层JavaWeb应用和n层J2EE应用的企业开发人员使用。

Net软件开发工具

1、MicrosoftVisualStudio

VisualStudio是一套完整的开发工具,用于生成ASPNETWeb应用程序、XMLWebservices、桌面应用程序和移动应用程序。VisualBasic、VisualC#和VisualC都使用相同的集成开发环境(IDE),这样就能够进行工具共享,并能够轻松地创建混合语言解决方案。关于常用的软件开发工具。

常见的软件开发语言:JAVA、Net、C/C/C#、JSP、ASP、PHP等等多种语言。其中PHP、Java和NET已经成为了未来五年内程序员必须具备的技能,这三种语言都在Web开发领域占有一席之地。PHP是Web的脚本语言;Java功能强大,适合企业级编程语言;C#融合了几种语言的优点。

分类: 电脑/网络
解析:

本文为您提供关于 Eclipse 平台的概述,包括起源和体系结构。本文首先简要讨论 Eclipse 的开放源代码性质及其对多种编程语言的支持,然后通过一个简单的程序例子展示 Java 开发环境。本文还将考查以插件扩展形式可用的一些软件开发工具,并展示一个用于 UML 建模的插件扩展。

Eclipse 是什么?

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。
这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。

Eclipse 是开放源代码的软件

开放源代码软件是这样一种软件,它们在发布时附带了旨在确保将某些权利授予用户的许可证。当然,最明显的权利就是源代码必须可用,以便用户能自由地修改和再分发该软件。这种用户权利的保护是通过一种称为 copyleft 的策略来完成的:软件许可证主张版权保护,除非明确授予用户这样的权利,否则用户不得分发该软件。copyleft 还要求同一许可证涵盖任何被再分发的软件。这实际上倒置了版权的目的——使用版权来授予用户权利,而不是为软件的开发者保留版权——copyleft 经常被描述为“保留所有版权”。

曾经四处蔓延的对开放源代码软件的许多恐惧、担忧和疑虑,都与某些 copyleft 许可证的所谓“病毒”性质有关——如果使用开放源代码软件作为您开发的程序的一部分,您将失去自己的知识产权,因为该许可证将“传染”您开发的专有部分。换句话说,该许可证可能要求与开放源代码软件一起打包的所有软件,都必须在相同的许可证之下发布。虽然这对最著名的 copyleft 许可证(即 GNU 通用公共许可证,例如 Linux 就是在该许可证之下发布的)来说可能是事实,当时还有其他许可证在商业化和社区考虑之间提供了较好的平衡。

开放源代码计划(Open Sofare Initiative)是一家非营利机构,它明确定义了开放源代码的含义及满足其标准的认证许可证。Eclipse 是在 OSI 认可的通用公共许可证(CPL)10 版之下被授予许可证的,CPL旨在促进程序的商业化使用。

为 Eclipse 创建插件或将 Eclipse 用作软件开发应用程序基础的开发人员,需要发布他们在 CPL 下使用或修改的任何 Eclipse 代码,但是他们可以自由决定自己添加的代码的许可证授予方式。与出自 Eclipse 的软件一起打包的专有代码不需要作为开放源代码来授予许可证,该源代码也不需要提供给用户。

尽管大多数开发人员不会使用 Eclipse 来开发插件,或创建基于 Eclipse 的新产品,但是 Eclipse 的开放源代码性质所意味的,并不只是它使得 Eclipse 免费可用(尽管便于商业化的许可证意味着插件可能要花钱)。开放源代码鼓励创新,并激励开发人员(甚至是商业开发人员)为公共开放源代码库贡献代码。对此存在许多原因,不过最本质的原因或许是为这个项目作贡献的开发人员越多,这个项目就会变得对每个人都越宝贵。随着这个项目变得更加有用,更多的开发人员将会使用它,并围绕它形成一个社区,就像那些围绕 Apache 和 Linux 形成的社区一样。

Eclipse 是什么机构?

Eclipse 协会管理和指导 Eclipse 正在进行中的开发。在据说 IBM 花了 4000 万美元开发 Eclipse,并把它作为一个开放源代码项目发布之后,Eclipse 协会吸收了许多软件工具提供商,包括 Borland、Merant、Rational、RedHat、SuSE、TogetherSoft 和 QNX。从那以后还有其他公司相继加入,包括 Hewlett Packard、Fujitsu、Sybase。这些公司分别向理事会派了一名代表,这个理事会负责确定 Eclipse 项目的方向和范围。

在最高层,项目管理委员会(Project Management Committee,PMC)管理着 Eclipse 项目。这个项目被划分为多个子项目,每个子项目都有一名负责人。大型子项目又被划分为组,每个组也有一名负责人。目前,这其中的大多数管理角色都由最初开发 Eclipse 的 IBM 子公司 Object Technology International (OTI)的人担任,但是作为一个开放源代码的项目,它欢迎任何人的参与。任何特定部门的职责是通过该部门对项目的贡献来争取的。

现在我们已经考察了 Eclipse 背后的一些理论、历史和管理,下面让我们考察该产品本身。

Eclipse 工作台

在第一次打开 Eclipse 时,首先看到的是下面的欢迎屏幕:

图 1 Eclipse 工作台

Eclipse 工作台由几个称为 视图(view) 的窗格组成,比如左上角的 Navigator 视图。窗格的 称为 透视图(perspective)。默认的透视图是 Resource 透视图,它是一个基本的通用视图集,用于管理项目以及查看和编辑项目中的文件。

Navigator 视图 允许您创建、选择和删除项目。Navigator 右侧的窗格是 编辑器区域。取决于 Navigator 中选定的文档类型,一个适当的编辑器窗口将在这里打开。如果 Eclipse 没有注册用于某特定文档类型(例如,Windows 系统上的 doc 文件)的适当编辑器,Eclipse 将设法使用外部编辑器来打开该文档。

Navigator 下面的 Outline 视图 在编辑器中显示文档的大纲;这个大纲的准确性取决于编辑器和文档的类型;对于 Java 源文件,该大纲将显示所有已声明的类、属性和方法。

Tasks 视图 收集关于您正在 *** 作的项目的信息;这可以是 Eclipse 生成的信息,比如编译错误,也可以是您手动添加的任务。

该工作台的大多数其他特性,比如菜单和工具栏,都应该和其他那些熟悉的应用程序类似。一个便利的特性就是不同透视图的快捷方式工具栏,它显示在屏幕的左端;这些特性随上下文和历史的不同而有显著差别。Eclipse 还附带了一个健壮的帮助系统,其中包括 Eclipse 工作台以及所包括的插件(比如 Java 开发工具)的用户指南。至少浏览一遍这个帮助系统是值得的,这样可以看到有哪些可用的选项,同时也可更好地理解 Eclipse 的工作流程。

为继续这个短暂的 Eclipse 之旅,我们将在 Navigator 中创建一个项目。右键单击 Navigator 视图,然后选择 New=>Project。当 New Project 对话框出现时,选择左面的 Java。标准 Eclipse 只有一种 Java 项目类型,名为“Java Project”。如果安装了插件来提供 JSP 和 servlet 支持,我们会从这里看到一个用于 Web 应用程序的附加选项。眼下,请选择 Java Project,在提示项目名称时输入“Hello”,然后按 Finish。

接下来,我们将检查一下 Java 透视图。取决于您喜欢的屏幕管理方式,您可以通过选择 Window=>Open Perspective=>Java 来改变当前窗口中的透视图,也可以通过选择 Window=>New Window,然后再选择这个新的透视图,从而打开一个新的窗口。

正如您可能预期的那样,Java 透视图包含一组更适合于 Java 开发的视图。其中之一就是左上角的视图,它是一个包含各种 Java 包、类、jar 和其他文件的层次结构。这个视图称为 Package Explorer。还要注意主菜单已经展开了——并且出现了两个新的菜单项:Source 和 Refactor。

联网设备已经在开始打造物联网,以仅仅几年前根本不可能的方式将用户与设备连接起来。

然而,很少有人停下来考虑:带来新的便利和奇迹的同时,物联网也可能会带来新的问题和顾虑,一些是技术方面的,另一些是社会或环境方面的。到目前为止,这些大多数新的问题和顾虑很少被普遍承认,不过有许多已经开始显现:

7 新的使用场合

还记得个人电脑首次出现时,被宣传用作存储食谱的地方吗还记得iPad发布时,许多文章提议该如何使用它吗与个人电脑和iPad一样,物联网也是那些热门概念之一,这是由于它具有的潜能,不是由于它能解决任何特定的问题。虽然如何使用物联网方面的例子通常涉及用来开关设备的定时器,但只有在智能设备遍地开花后,真正的用途才可能会出现。

这并不意味着物联网不会成功或不会彻底改变技术行业。然而,这确实意味着影响难以预料。唯一靠谱的建议就是,建议大家要预料到意外的情况。

6 需要开放标准

物联网包括许多使用自家规范的不同设备。在现阶段,这并不要紧,但是过不了多久,进一步的发展势必需要智能设备能够彼此通信。

不过,虽然物联网的大部分可能是用开源软件构建的,但是通用标准和协议落后于智能技术的发展。现有的为数不多的项目往往针对某项技术,比如Eclipse物联网,而且往往专注于将现有的标准或协议应用于智能设备,而不是针对物联网的新需求来开发。要是没有更大程度的合作,物联网的发展就会偏慢。

5 能源需求

几年前,Gartner预测,到2015年使用的智能设备将多达49亿个,比2014年增加30%。到2020年,Gartner估计,智能设备的数量将达到250亿个,每年增长100%。

伴随这种增长的将是能源需求也会随之增加,增幅与互联网带来的需求相当。2012年,支撑互联网的数据中心估计每年耗电量达到300亿瓦――这足以为一座中型城镇供电,而物联网需要的耗电量可能更大。

即便有了经过改进的电池,以及像太阳能和风能这些绿色能源,仅仅满足需求还是会很困难。然而,加上能源浪费和污染物等问题,为物联网供电本身在今后十年将成为一个重大的社会问题。

4 废物处置

由于有计划的废弃,光美国每年就要产生5000万吨的电子废物(处置掉的电脑、电话和外设)。由于中国和印度等国家继续工业化,加上物联网接入网络,这个问题只会日益严峻。与此同时,只有不到20%的电子废物被回收;尽管有《巴塞尔公约》,其余电子废物大部分继续被运往海外的发展中国家,废物在不安全的工作环境下被利用。

智能设备并没有引起电子废物,但假设它们采用与如今计算机一样的方式来制造,寿命只有短短几年,它们似乎可能会让这个问题严重两三倍。

3 存储问题

存储智能设备生成的信息会加大物联网带来的能源需求。相比智能设备的庞大需求,像谷歌这样单单一家公司的需求相形见绌。谷歌已经拥有无数的服务器集群,每个服务器集群占地数万平方英尺。

然而,场地要求只是问题的一方面。智能设备生成的数据大多数只是暂时用来发送信息到设备,并不需要存储起来。其他数据(比如设备定时器)可能通常最多只需要存储一两个星期。

然而,由于这些信息随时可用,将这海量信息的一部分存储更长一段时间的需求会随之加大。因而,就需要制定政策,规定存储哪种类型的信息、存储多久――更不用说谁可以访问,以及制定的任何一般性政策允许有什么样的例外。

2 缺乏隐私

物联网有可能蕴含关于谁在使用它的大量信息。智能手机已经可以受到跟踪,智能设备表明在未来,政府可以为人口普查信息补充智能设备的输出信息,厂商可以高效地收集关于你习惯的信息,那样它们就能让Facebook对你兴趣和购买习惯的深入了解显得微不足道。

另外设想一下,政府部门通过你的智能设备对你实施跟踪,或者你的设备在法庭上被用来对付你。

这些可能是可怕的场景。由于许多国家争论智能设备用户到底保留哪些隐私权、放弃哪些隐私权,可以预计,物联网会带来众多的法律先例和集体诉讼。

1 缺乏安全

在面临为用户提供便利还是安全这道选择题时,厂商几乎无一例外地会选择便利。即使在这个早期阶段,物联网也不例外。路由器、卫星接收器、网络存储系统和智能电视等基本设备已经极其容易中招,2015年就报道了首起攻击汽车得逞的事件。这类报道势必会引起公众呼吁要敲响警钟,但是同样不可避免的是,实际行动少之又少。

无论如何,不管一个设备可能有多安全,可以保证用户会移除大部分安全机制。比如说,我最近买了一只路由器,允许访问存储在我电脑上的配置文件的默认登录用户名和密码居然是“admin”和“password”。

同样,马修·加勒特(Matthew Garrett)最近在2016年3月份的一篇博客(>

现在设想一下,不远的将来会有数十亿个设备,这类情况到时会何等严峻。突然,我们目前缺乏安全和隐私与一旦物联网启动并运行起来,我们可能面临的严重势态相比似乎微不足道。

发掘科技一家专业的物联网硬件方案公司:发掘科技


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/13316234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-13
下一篇 2023-07-13

发表评论

登录后才能评论

评论列表(0条)

保存