手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Scala

scala是什么

前两天一直在说scala,有几个朋友问我什么 是Scala,每次让他们翻一下google也太累了,所以我就贴在博客上,当然这也是找出来的东西,我没有能力写这么多。

我个人还是认为,不管怎么样,WEB、winform、console(shell)三种编程效果的程序语言最好都要熟悉一种,不管是为了将来的职业发展还是工作应用,都会有很大的方便。
OK,开始介绍:

Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。

  • Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和 行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
  • Scala是函数式的: Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher- order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中 都被使用。
  • Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被 使用。
  • Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。 Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
    • 任何方式可以被用作中缀(infix)或后缀(postfix)操作符
    • 闭包按照所期望的类型(目标类型)自动地被构造
    两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
  • Scala可与Java和.NET进行互操作:Scala 设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和 .NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载 类),允许访问成千上万的高质量类库。

来源:http://www.oschina.net/p/scala

Tags: scala, java

netbeans更换jdk路径

昨天下载完了jdk1.6update20后,总以为启动netbeans的时候会自动更換jdk路径的。(原来我是想他是直接从系统路径里读取的。)但是在安装scala插件的时候,它还是提示我用的是jre而不是jdk。但是给了我一个帮助,地址为:http://wiki.netbeans.org/FaqRunningOnJre

OK,原来这么简单

1、先安装JDK full版

2、打开<netbeans安装目录>/etc/netbeans.conf,更換里面的netbeans的JDK的路径。。

3、保存,重启netbeans,Over了

第二种方式就是 --jdkhome command-line option e.g. ./bin/netbeans --jdkhome /usr/local/share/java/jdk1.6.0_07/

这是在快捷方式中指定jdkhome,这样比较适合你有很多JDK版本时适用。

 

Tags: netbeans, jdk, java, scala

JDK最新版本下载及JDK安装与配置

前文就说了,我最近在学scala,于是乎,我用日常我常用的IDE开始装scala插件,结果它告诉我需要安装jdk,一下子有点郁闷,原来,我安装系统时,为了装netbeans,都是装的JRE,因为我仅用来开发PHP。可是现在要JDK了,找不到地方下载呀。虽然我知道,它就在sun.com,但一下子急着找却找不到。

网上连这个都有现成的资料,而且会教你一步一步的配置这东西,这让我想起我在01年左右配置java环境的事情,想不到一下子过去10年了。10年之前我觉得java很复杂,那时候选择了学asp,和PHP,现在,又要走回去了。不过我还是坚持了一下下,没有用java,而的是scala,其实。。。他们两个很相象啊。

“工欲善其事,必先利其器”。进行程序开发,首先要安装开发相关的软件,并且熟悉这些工具软件的基本使用。本章介绍一下两类开发工具的使用,重点是 JDK最新版本以及JDK下载、安装和配置。

基础开发工具

基础开发工具是进行程序设计的基础,包含开发中需要的一些基本功能,例如编译、运行等,是其它开发工具的基础。Java语言的基本开发工具是SUN 公司免费提供的JDK。

实际开发中,为了方便和程序开发的效率,一般不直接使用基础开发工具,所以对于很多基础开发工具,只需要掌握其基本的使用即可。

集成开发环境(IDE)

集成开发环境是指将程序设计需要的很多功能,例如代码编辑、代码调试、程序部署等等一系列功能都整合到一个程序内部,方便程序开发,并提高实际的开 发效率,简化了程序设计中的很多操作。

Java语言的集成开发环境很多,常见的有Eclipse、JBuilder、NetBeans等等。由于实际开发中,基本都是使用集成开发环境进 行开发,所以在学习中必须熟练掌握该类工具的使用。一般集成开发环境的使用都很类似,在学习时只要熟练掌握了其中一个的使用,其它的工具学习起来也很简 单。

本文以Eclipse为例来介绍集成开发环境的基本使用。

JDK开发环境

JDK(Java Developer’s Kit),Java开发者工具包,也称J2SDK(Java 2 Software Development Kit),是SUN公司提供的基础Java语言开发工具,该工具软件包含Java语言的编译工具、运行工具以及执行程序的环境(即JRE)。

JDK现在是一个开源、免费的工具。JDK是其它Java开发工具的基础,也就是说,在安装其它开发工具以前,必须首先安装JDK。
对于初 学者来说,使用该开发工具进行学习,可以在学习的初期把精力放在Java语言语法的学习上,体会更多底层的知识,对于以后的程序开发很有帮助。

但是JDK未提供Java源代码的编写环境,这个是SUN提供的很多基础开发工具的通病,所以实际的代码编写还需要在其它的文本编辑器中进行。其实 大部分程序设计语言的源代码都是一个文本文件,只是存储成了不同的后缀名罢了。常见的适合Java的文本编辑器有很多,例如JCreator、 Editplus、UltraEdit等。

下面依次来介绍JDK的下载、安装、配置和使用。

1 JDK的下载

如果需要获得JDK最新版本,可以到SUN公司的官方网站上进行下载,下载地址为:
http://java.sun.com/javase/downloads/index.jsp
下 载最新版本的“JDK 6 Update 6”,选择对应的操作系统,以及使用的语言即可。

在下载Windows版本时,有两个版本可供下载,,分别是:

Windows Online Installation:在线安装版本,每次安装时都从网络上下载安装程序,在下载完成以后,进行实际的安装。

Windows Offline Installation:离线安装版本,每次安装时直接进行本地安装。通常情况下,一般下载离线安装版本。

其实如果不需要安装JDK最新版本的话,也可以在国内主流的下载站点下载JDK的安装程序,只是这些程序的版本可能稍微老一些,这些对于初学者来说 其实问题不大。

2 JDK的安装

Windows操作系统上的JDK安装程序是一个exe可执行程序,直接安装即可,在安装过程中可以选择安装路径以及安装的组件等,如果没有特殊要 求,选择默认设置即可。程序默认的安装路径在C:\Program Files\Java目录下。

3 JDK的配置

JDK安装完成以后,可以不用设置就进行使用,但是为了使用方便,一般需要进行简单的配置。由于JDK提供的编译和运行工具都是基于命令行的,所以 需要进行一下DOS下面的一个设定,把JDK安装目录下bin目录中的可执行文件都添加到DOS的外部命令中,这样就可以在任意路径下直接使用bin目录 下的exe程序了。

配置的参数为操作系统中的path环境变量,该变量的用途是系统查找可执行程序所在的路径。

配置步骤为:

1、“开始”>“设置”>“控制面板”>“系统”

如果控制面板的设置不是经典方式,那么可以在控制面板的“性能和维护”中找到“系统”。当然,也可以选择桌面上的“我的电脑”,点击鼠标右键,选择 “属性”打开。

2、在“系统属性”窗口中,选择“高级”属性页中的“环境变量”按钮。

3、在“环境变量”窗口中,选择“系统变量”中变量名为“Path”的环境变量,双击该变量。

4、把JDK安装路径中bin目录的绝对路径,添加到Path变量的值中,并使用半角的分号和已有的路径进行分隔。例如JDK的安装路径下的bin 路径是C:\Program Files\Java\jdk1.6.0_04\bin,则把该路径添加到Path值的起始位置,则值为:C:\Program Files\Java\jdk1.6.0_04\bin;C:\Program Files\PC Connectivity Solution\;C:\Program Files\Java\jdk1.6.0_04\bin;C:\j2sdk1.4.2_11\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
以 上路径在不同的计算机中可能不同。

配置完成以后,可以使用如下格式来测试配置是否成功:
1、 打开“开始”>“程序”>“附件”>“命令提示符”
2、 在“命令提示符”窗口中,输入javac,按回车执行

如果输出的内容是使用说明,则说明配置成功。如果输出的内容是“’javac’不是内部或外部命令,也不是可执行的程序或批处理文件。”,则说明配 置错误,需要重新进行配置。

常见的配置错误为:

1)JDK的安装和配置路径错误,路径应该类似C:\Program Files\Java\jdk1.6.0_04\bin。

2)分隔的分号错误,例如错误的打成冒号或使用全角的分号

--EOF--http://developer.51cto.com/art/200907/134559.htm

Tags: java, jre, jdk, scala, netbeans

旧闻:Android系统支持新的编程语言-Scala

旧闻喽,不过,这对我来说可是个好消息,原本还在考虑不会java怎么搞android开发的呢。结果这个消息太让人振奋了。感谢google让我搜到这些资料,其实我本来是想搜索scala有没有桌面应用的。

原文地址:http://www.moandroid.com/?p=562

Google于当地时间2009年6月25日宣布,公开了开发套件“Android 1.5 Native Development Kit(NDK), Release 1”,使用该套件开发者可用C/C++语言编写支持手机软件平台“Android”的应用程序。支持Android的应用程序此前只能利用Java编写, 用虚拟机“Dalvik”运行。使用NDK后,可从应用程序中调用由C/C++创建的程序库,从而可以使用已有的程序库。C/C++程序库可与发放应用程 序的打包文件(.apks格式)捆绑。NDK由标准C程序库“libc”、标准算术运算库“libm”,其他语言用Java接口“Java Native Interface(JNI)”及压缩处理库“libz”等构成。不过,由于只支持英国ARM的“ARMv5TE”命令集,因此NDK使用的应用程序的可 移植性会较低。另外,由于还存在应用程序结构复杂等多个缺点,因此使用NDK时要注意其优缺点。

前段时间,Google发布了一款类BASIC的简易编程语言Simple,用来开发Android平台下的应用程序。“将简单易用的语言带到行动 世界及Android平台,是Simple项目的最终目标,”Google软件工程师Herbert Czymontek在Blog中指出:“Simple可说是针对Android发展出来的Basic语言版本,特别适合非专业开发人员(当然专业开发人员 也可以用)。它的runtime提供许多组件,让大家可以很快撰写出Android应用。”

最近,在IBM 开发人员社区中,看到了另外一条消息:Android系统支持Scala编程语言。Scala运行于Java平台(Java虚拟机),并兼容现有的 Java程序,具有以下特征:

  1. Scala是一种纯面向对象的语言,每一个值都是对象。对象的数据类型以及行为由类和特征(Trait)描述。类抽象机制的扩展有两种途径。一种 途径是子类继承,另一种途径是灵活的混入(Mixin)机制。这两种途径能避免多重继承的种种问题。
  2. Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支 持柯里化 。
  3. Scala是具备类型系统,通过编译时的检查,保证代码的安全性和一致性。

关于Scala的详细信息,可以到维基百科中关于Scala的介绍去仔细阅读。

还有大家一直很关心的问题(估计微软也在思考这个问题):Google为什么同时开发2种操作系统Google Chrome OS、Google Android OS。早些时候,Google在发表Chrome OS的博客文章中,承认两者有重叠:“Android的设计初衷,是横跨各种不同装置,从手机到机顶盒,到上网本。Google Chrome OS则是针对大部分时间都在上网的人,设计搭配的是上网本到完整的电脑系统。”还有李开复谈云计算中说明的:Android在Google云计算战略中的 作用。

这些都让我们不得不考虑一个:Google到底想做什么,Android会给Google带来什么?10年前Google给互联网带来了搜索引擎, 改变了人们的生活方式,10年后的Google又会给互联网带来什么?Google变得越来越强大,也变得越来越可怕,Google正在变成另一个微软。 但是有一点Google是最明白的:互联网的改变不能只靠Goolge,Google只能建立一个平台,然后让其他人在这个平台上一起改变互联网。也许就 像微软那样,它只需要开发操作系统这个核心平台,就会有大量的软件在操作系统的基础上为用户提供完善的服务,如果没有这些软件,操作系统也会变得黯然无 光。Android系统也许是Google在投石问路,Google需要的是让大量的开发人员加入到他的平台中,这也许是Google为什么要大量的吸引 开发人员,无论Java、C++,还是Scala。

Google在逐步完善自己的平台,实施它的战略目标,也许有一天Google会突然间说:任何语言都可以在Google Chrome OS开发应用程序,各种使用Android系统的移动设备可以借用Google云计算的强大功能。这个时候人们的生活又将是什么样的,或许真的可以像《黑 客帝国》中描述的那样,人们完全生活在一个虚拟的世界中。

--EOF--

也看到了一个例子,等会就上例子。。。

Scala分类建立

最近被人忽悠着学这个,试了一下,感觉也还行,所以就建了一下这个分类。
估计以后会有一部分时间是在玩这个了。
语法也有点简单,不是特别需要每个地方都定义变量。感觉有点象javascript的结构,但又不全是(当然不是,不过正因为有点象,所以我才选择了这个)

桌面应用好象不多,实在不行,我就用来当脚本跑喽。毕竟类库多一点,而且,用JVM的话,性能上或许也有一点点的保障(现在都不太清楚。只是乱猜测,不过,真要用PHP跑后台脚本24小时跑,不太放心,xmpp协议,用PHP跑的话,效率应该不能保障)

我仅想用它来做一些PHP做起来有点累的事情,目前还没有想到什么,但我想我应该有应该可以被用到。

朋友的网游是用java连接数据库,然后PHP调用接口。我当然不会无聊到BLOG也用scala来连接数据库,再用PHP调用,只是想着可能在以后会经常用到这门语言,那就够了。

权当,混饭吃吧。

Tags: scala

Records:1012