[问题]Linux下的编程分那些啊?c,perl,python?

软件和网站开发以及相关技术探讨
头像
qalong
帖子: 16
注册时间: 2007-07-29 19:40
来自: 青岛
联系:

[问题]Linux下的编程分那些啊?c,perl,python?

#1

帖子 qalong » 2008-08-17 23:55

一直都在windows下编程,现在想学习linux的编程
但是现在对linux编程的方式有点混乱,比如c,perl,python,gtk,pygtk都是什么关系啊,希望有人可以给我指点指点,谢谢了,呵呵
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

#2

帖子 想入非非 » 2008-08-18 0:22

我也想知道,等一下高手。。。 :lol:
Ubuntu User
heejun
帖子: 60
注册时间: 2006-05-01 12:29
来自: zju

#3

帖子 heejun » 2008-08-18 0:56

C是面向过程的,比较底层
然后perl python都是脚本,包含compiler + run 两个过程
比较高层
pygtk是python的gtk模块
头像
qalong
帖子: 16
注册时间: 2007-07-29 19:40
来自: 青岛
联系:

#4

帖子 qalong » 2008-08-18 15:22

在windows下,java和net是基于虚拟机或者框架技术,c,delphi是编译语言直接编译成程序文件,那在linux下是怎么个样子的哪?
c也是编译成linux的程序文件,那gtk编程是什么概念?
python是比较高级也像windows下那样基于框架?
还有linux下的shell编程是不是就像是windows下的bat文件的加强版?
俺求学心魄所以就问了一大堆,嘿嘿,希望哪位高手指点指点,想学linux编程应该怎么来学,先学什么后学什么?
头像
zcg0696
帖子: 44
注册时间: 2008-05-27 17:30

#5

帖子 zcg0696 » 2008-08-18 17:57

编程语言和操作系统没多大关系,换个系统只需要转换编程工具,如果是用Eclipse这种跨平台的工具那基本上就是一样的。gtk/qt就是windows系统下的MFC,bash脚本就是批处理文件。
头像
anticlockwise
帖子: 2394
注册时间: 2007-03-01 20:46
来自: 湖南长沙

#6

帖子 anticlockwise » 2008-08-20 20:24

像楼上所说,编程语言和操作系统没有关系,要理解的是语言本身没有差异,我们平常所说的语言应该指的是语言的实现,或者语言编译器/解释器的实现。

没有所谓的WINDOWS中编程分哪些,LINUX又分哪些,目前来说,LINUX中有的语言,WINDOWS底下也有,比如PYTHON、PERL、RUBY都有相应的WINDOWS版本的实现。

GTK是一种跨平台图形界面库的实现,你在UBUNTU底下所看到的大多数程序都会用GTK开发,这不光包括GTK本身最原始的C实现,也包括GTK的很多其他语言的绑定,例如C++,还有PYTHON的PYGTK。

个人感觉楼主在这些基本概念上还不是特别清楚,例如语言和语言的实现、语言本身和库,而且我不太懂楼主所指的框架技术是什么~~所谓的框架技术应该是指运用在实现某个包/库的时候用的,和语言本身无关啊~~
头像
jarlyyn
帖子: 4671
注册时间: 2006-04-12 18:54
联系:

#7

帖子 jarlyyn » 2008-08-21 0:53

qalong 写了:在windows下,java和net是基于虚拟机或者框架技术,c,delphi是编译语言直接编译成程序文件,那在linux下是怎么个样子的哪?
c也是编译成linux的程序文件,那gtk编程是什么概念?
python是比较高级也像windows下那样基于框架?
还有linux下的shell编程是不是就像是windows下的bat文件的加强版?
俺求学心魄所以就问了一大堆,嘿嘿,希望哪位高手指点指点,想学linux编程应该怎么来学,先学什么后学什么?
java在linux下有开源实现,也有sun的sdk

.net在linux下有个开源实现叫mono

C,C++之类在linux下也有对应的编译器。不同的是win下使用的是ELF格式的可执行文件,linux下的PE格式的。

python是一个强大的脚本语言,类似于win下的jsp,vbs,但是强大的多的多。

shell语言比bat文件强大多了,比vbs之类弱点。
头像
qalong
帖子: 16
注册时间: 2007-07-29 19:40
来自: 青岛
联系:

#8

帖子 qalong » 2008-08-22 23:13

:D,我一直都是在windows下做java/j2ee开发,对linux并不是很了解,听了大家的解释,明白了不少,呵呵

还有一个 :?:
7楼朋友的一句:
不同的是win下使用的是ELF格式的可执行文件,linux下的PE格式的。
win下是PE格式的吧?
poet
帖子: 2841
注册时间: 2006-09-11 22:47

#9

帖子 poet » 2008-08-22 23:57

qalong 写了:在windows下,java和net是基于虚拟机或者框架技术,c,delphi是编译语言直接编译成程序文件,那在linux下是怎么个样子的哪?
c也是编译成linux的程序文件,那gtk编程是什么概念?
python是比较高级也像windows下那样基于框架?
还有linux下的shell编程是不是就像是windows下的bat文件的加强版?
俺求学心魄所以就问了一大堆,嘿嘿,希望哪位高手指点指点,想学linux编程应该怎么来学,先学什么后学什么?
即使都可以使用相同的语言,但是不同系统具有完全不同的文化,因此也具有完全不同的设计哲学。

1。在Linux下,程序的单位是进程,进程的创建与进程间通讯具有非常优化的效率。他们可以是二进制代码,也可能是解释型脚本,没有任何区别,这本身暗含着鼓励多语言混合式编程方式。

在Windows下,进程创建的开销比较大,因此程序的模块之间往往全部包含在一个进程中,倾向于做一个大型的程序并把可能的功能全部包含在自身内部。这本身暗含着整个程序使用同一片内存空间,并且单语言编程方式在这种模式下最有效。

2。windows下设计通常从界面开始考虑,然后考虑这个界面需要具有哪些接口,菜单,按钮,功能等等,然后再针对这些接口与功能进行具体的实现。——这是一种“自顶向下”的设计方式。它意味着windows编程的学习很多时候是从界面及框架开始的。

Linux下设计通常从底层和引擎开始,先考虑一个系统的基础与核心底层需要完成的事情,并实现它,然后再考虑如何包装一些接口用于访问这些功能,例如函数接口,又例如命令行与参数接口,然后如果这个东西好用,就会有人为它写一个图形界面,用界面去封装这个引擎能够具有的接口与功能。——这是一种“自底向上“的设计方式。它意味着Linux编程的学习很多时候是从底层的算法数据结构与引擎开始的。


显然,有些人可能辩论说:你在Linux下也可以使用单语言,也可以使用单进程,也可以使用自顶向下的设计方式,这没错,但是必须明白,偏离操作系统文化与哲学的设计方式将会让人只感觉到这个系统的缺点。——在Linux下以windows的方式做事情永远不可能比windows更高效,但在windows下以Linux的方式做事情也永远不可能比Linux更高效。
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28

#10

帖子 flyinflash » 2008-09-13 0:32

学好高等数学、C、Python、数据结构和算法基础,再学别的。

切忌浮躁。
flyinflash
帖子: 2376
注册时间: 2006-09-21 14:28

#11

帖子 flyinflash » 2008-09-13 0:35

语言这个东西,懂一个底层的,其他就容易学了。

我建议你学跨平台的语言,因为这样你的程序可以在任何平台下运行很爽的。
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

#12

帖子 想入非非 » 2008-09-13 2:21

flyinflash 写了:语言这个东西,懂一个底层的,其他就容易学了。

我建议你学跨平台的语言,因为这样你的程序可以在任何平台下运行很爽的。
java、python。。。。。
Ubuntu User
头像
qalong
帖子: 16
注册时间: 2007-07-29 19:40
来自: 青岛
联系:

Re:

#13

帖子 qalong » 2008-12-11 23:45

想入非非 写了:
flyinflash 写了:语言这个东西,懂一个底层的,其他就容易学了。

我建议你学跨平台的语言,因为这样你的程序可以在任何平台下运行很爽的。
java、python。。。。。

其实我会java。但是,学的是j2ee,和系统开发完全不同
narky
帖子: 42
注册时间: 2006-12-13 22:20

Re: [问题]Linux下的编程分那些啊?c,perl,python?

#14

帖子 narky » 2008-12-12 19:26

既然是j2ee那更跟系统没有多大的关系,java本来就是跨平台的,j2ee的开发部署环境在Linux下基本也是差不多

eclipse,apache,tomcat,hibernate,spring等等在哪里都一样。
Thermophilus
帖子: 2
注册时间: 2011-04-17 0:50

Re: 很中肯的评论

#15

帖子 Thermophilus » 2011-10-21 20:48

poet 写了:
qalong 写了:在windows下,java和net是基于虚拟机或者框架技术,c,delphi是编译语言直接编译成程序文件,那在linux下是怎么个样子的哪?
c也是编译成linux的程序文件,那gtk编程是什么概念?
python是比较高级也像windows下那样基于框架?
还有linux下的shell编程是不是就像是windows下的bat文件的加强版?
俺求学心魄所以就问了一大堆,嘿嘿,希望哪位高手指点指点,想学linux编程应该怎么来学,先学什么后学什么?
即使都可以使用相同的语言,但是不同系统具有完全不同的文化,因此也具有完全不同的设计哲学。

1。在Linux下,程序的单位是进程,进程的创建与进程间通讯具有非常优化的效率。他们可以是二进制代码,也可能是解释型脚本,没有任何区别,这本身暗含着鼓励多语言混合式编程方式。

在Windows下,进程创建的开销比较大,因此程序的模块之间往往全部包含在一个进程中,倾向于做一个大型的程序并把可能的功能全部包含在自身内部。这本身暗含着整个程序使用同一片内存空间,并且单语言编程方式在这种模式下最有效。

2。windows下设计通常从界面开始考虑,然后考虑这个界面需要具有哪些接口,菜单,按钮,功能等等,然后再针对这些接口与功能进行具体的实现。——这是一种“自顶向下”的设计方式。它意味着windows编程的学习很多时候是从界面及框架开始的。

Linux下设计通常从底层和引擎开始,先考虑一个系统的基础与核心底层需要完成的事情,并实现它,然后再考虑如何包装一些接口用于访问这些功能,例如函数接口,又例如命令行与参数接口,然后如果这个东西好用,就会有人为它写一个图形界面,用界面去封装这个引擎能够具有的接口与功能。——这是一种“自底向上“的设计方式。它意味着Linux编程的学习很多时候是从底层的算法数据结构与引擎开始的。


显然,有些人可能辩论说:你在Linux下也可以使用单语言,也可以使用单进程,也可以使用自顶向下的设计方式,这没错,但是必须明白,偏离操作系统文化与哲学的设计方式将会让人只感觉到这个系统的缺点。——在Linux下以windows的方式做事情永远不可能比windows更高效,但在windows下以Linux的方式做事情也永远不可能比Linux更高效。
我觉得这话说到点子上了。不同系统尤其固有的历史渊源和文化背景,有其固有的习惯方式,不要用一个平台上的思路往另一个上套。
回复