it-swarm.cn

编写没有图形的程序IDE

我不确定这是否可能,但是我已经看了一些带有编程示例的视频,其中看起来该程序是以某种命令提示符而不是尼斯图形IDE编写的。我只是对这些视频中可能发生的事情感到好奇。是否可以在没有IDE的情况下编写程序?

这是两个示例: http://www.youtube.com/watch?v=hFSY9cWjO8o (@ 6分钟) http://www.youtube.com/watch?v=tKTZoB2Vjuk (@ 5分钟)

谁能解释这是怎么做的?

谢谢大家的宝贵意见!

19
Matt

编写程序所需的只是一个文本编辑器和一个编译器(如果您使用的是非编译语言,则可以使用解释器)。代码通常只是纯文本。确实,您可以使用Windows记事本和命令行C编译器编写任何可以想象的程序。

许多程序员甚至不使用IDE。在我最终改用Eclipse之前,我个人使用 Gedit (带有语法突出显示功能的基本Linux文本编辑器)的时间最长。

实际上,当我想编写一个简单的程序时,我still还是使用Gedit。有时,如果我想快速编写脚本,甚至会使用 nano ,因为我太急躁,无法等待IDE)加载。

22
Charles Salvia

@Matt,比看起来简单。让我们看第二段视频:他们正在编写python程序。Python是一种解释语言-意味着以python不需要编译,只需要解释运行即可。

如果您有一个简单的编辑器,例如 notepad (windows)或 nano (linux),则可以编写一个简单的文本文件,命名为"program.py" ,然后从命令行运行解释的文件,如下所示:

python program.py

例如,如果要使用 Lua 进行编程,则可以使用 notepadnano 编写一个名为"program.lua"的简单文本文件,然后在文本文件上写一行,如下所示:

print("my first program in lua")

然后转到命令提示符(在Windows上为cmd,在Linux中为终端)并运行命令:

lua program.lua

关键概念:

  • 原始程序是一个文本文件。编写程序所需的全部工作就是文本编辑器。
  • 如果您选择的语言是经过解释的语言,则需要解释器来运行程序(Lua,Basic,Python等)。此解释器必须安装在您的计算机上;
  • 如果您选择的语言是经过编译的语言,则需要安装 toolchain (主要是编译器和链接器),才能将源代码转换为机器可理解且可运行的二进制代码。每种语言(C,Java,C++,C#,VB.Net等)都有自己的工具链。

希望能有所帮助。

11
Machado

耶稣,我现在觉得年纪大了,我什至不必打扰打孔卡或批处理。地狱,我在大学生涯中只需要使用一两次硬拷贝终端。

这就是我们在白垩纪晚期(大约1986年)所做的事情。我正在通过VT220基于琥珀色字符的终端处理VAX/VMS,该终端可以80x24或132x24的分辨率显示。

首先,启动文本编辑器:

$ EDIT/EDT HELLO.C

EDT与VMS等效,相当于DOS edlin和Notepad之间的功能。您输入了程序文本

#include <stdio.h>

int main(void)
{
  printf("Hello, Stupid\n");
  return 0;
}

将其保存到文件中,然后退出编辑器。

然后,您通过编译器运行代码:

$ CC HELLO

这样就翻译了HELLO.C中的源代码,并生成了目标文件HELLO.OBJ。目标文件包含该程序的机器代码,但尚未以可执行形式出现。一方面,printf调用的实际二进制代码不存在。只有一个占位符。您仍然必须通过linker运行目标文件,该目标文件并入了标准库(以及您需要的任何其他库)中的二进制代码并格式化了文件,以便可以将其识别为可执行文件:

$ LINK HELLO

此步骤的结果是文件HELLO.EXE,它是程序的可执行版本。

在任何现代系统上,该过程几乎都是相同的。只是特定的工具链不同。例如,典型Linux系统上的命令序列为

$ vi hello.c
$ gcc -o hello hello.c 

要么

$ vi hello.c
$ gcc -c hello.c 
$ ld -o hello hello.o -lc

自从我在这种环境中长大以来,我从不了解有人怎么能需要一个IDE只是为了编写他们的代码。但是,今年年初,我开始使用Java进行工作,尽管Eclipse有很多缺点,但我可以理解,有人可以严重依赖IDE)来完成他们的工作。由于Java与C相比是一种庞大的语言,并且我仍在尝试简化语法的细节,这有助于拥有一个智能的开发环境,该环境知道特定类型所包含的包并帮助我组织导入。

10
John Bode

编辑?我不需要臭臭的编辑器或IDE到write)代码:

cat << EOF > hello.c
/* This IS an example of writing code from the command line */
#include <stdio.h>

int main(void)
{
    puts("Hello, World!");
    return 0;
}

EOF

但是,以后可以编辑文件是一件很高兴的事情。 IDE(集成开发环境)的时间比许多人在答案中建议的要长得多。唯一的IDE我真正喜欢的是那个带有 Turbo C ,它在DOS上运行。对于被迫用 edlin 乱搞的人们来说,这就像氧气。

我尝试了许多不同的IDE'适合',推荐朋友们的建议,他们不停地狂热地节省了多少时间,如何使一切变得方便。每次我坐下来尝试使用时,第一,我发现我比使用它更努力。

在大多数情况下,我只使用最简单的文本编辑器。我最喜欢的是KDE,它是KDE附带的。这些是我喜欢的功能:

  • 语法突出显示
  • 代码折叠
  • 简单的基于正则表达式的搜索/替换
  • 内联外壳窗口
  • 内联编译器窗口/调试器窗口
  • 片段库
  • 符号查看器
  • 极轻的内存占用量(我的一些项目有数百个源文件)
  • 简易标签页/分割视窗
  • 简单的会话,而不是复杂的“项目”
  • (半)简单的插件架构

仅凭这些基本功能,我感觉自己快被宠坏了。

使用功能丰富的IDE时,我实际上高效,并且很高兴我从未开发过对它的依赖。

6
Tim Post

是的,是的。

就像可以在不同时使牛奶起泡沫的同时煮咖啡,无需打电话也无需缴税就能开车去上班,或者不听环绕声系统上的“大黄蜂飞行”而凝视星空一样,无需运行编辑器,调试器,代码分析系统和蛇游戏即可编译代码。

但是...谁真的想凝视silence

6
Shog9

IDE不是编译器,调试器或类似的东西,它实际上是允许您访问所有这些通常是单独程序的前端)。在Visual Studio的背后,有一个一个可以作为单独程序访问的编译器,可以从命令提示符处编译程序,并且可能还有一个可以单独访问的调试器,依此类推-我对它的基础结构不太熟悉,因为我不使用它。

根据您的询问,IDE)很有用,或者会妨碍您的前进。它还取决于您编写的内容,大小,编码样式等。我,我真的并不需要太多使用IDE,但是我认为某些任务可以更好地处理它(或者取决于您如何看待它) ,我懒得为自己编写脚本/宏)。

4
donkey_lz

必然是。在第一个视频中,它是关于C编程的。要编写C程序,您需要满足以下条件:

  • 将代码写入其中的某种源文件
  • 将这个源文件转换成二进制文件的工具链,这是CPU最终唯一能理解的东西。

严格来说,您不需要文件,但是我不知道任何不使用C/C++文件的环境。因此,您需要一个编辑器来编辑源代码。尽管可以使用记事本这样的简单功能,但是您确实希望做一些更复杂的事情来进行编码(突出显示代码,同时打开多个文件等)。

第二点,您需要一个编译器(源代码->目标代码)和一个链接器(目标代码合并在一起+启动程序所需的最小支持)。

即使使用IDE,大多数在后台完成的任务也可能是通过命令行完成的:例如,在Visual Studio中,IDE仍然使用文件,并在命令行为您调用编译器,但是可以以其他方式工作(也许可以进行更多集成)。

那么,为什么不使用IDE?有些人对他们的代码编辑器非常熟悉,因为他们真的很了解。例如,我对vi代码编辑器的工作效率很高。如果您需要与IDE尚未设计的内容进行交互,则IDE也受到限制。这里需要权衡取舍,这取决于程序员的能力,项目,编程语言/工具等。某些语言甚至没有像样的IDE,而另一些语言几乎没有一种就无法使用。尽管我自己不使用IDE,但我认为它们非常有用的一个方面是调试C和C++的集成。

3
David Cournapeau

您当然可以在没有图形IDE的情况下编写程序。对于编译语言(例如C或C++),该过程将如下所示:

  1. 在首选的文本编辑器中编写程序。
  2. 在命令行中,调用将您的程序转换为可执行机器代码的编译器和/或链接器,并提取所需的外部库。 (对于这里的链接和编译顺序,我有些困惑,但是我敢肯定有人会立刻纠正我。:)

对于PHP或Python)之类的解释语言,您可以在首选的文本编辑器中编写代码(或使用交互式Shell,例如Python附带),而代码为例如,要调用Python脚本,请运行python.exe myScript.py

Python不是纯解释型语言,因为它确实会首先编译,但是该编译形式由Python解释器运行,因此它仍然符合定义。其他语言,例如PHP完全被解释。

2
Adam Lear

您甚至不需要文本编辑器。 :) :)

如果您在Windows中,请尝试以下操作:

more > hello.c 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
Ctrl-C

如果您在UNIX中

cat > hello.c <<. 
#include <stdio.h>

main()
{
   printf ("Hello World!\n");
}
.

然后,使用您最喜欢的命令行编译器进行编译。 :)

显然,您必须在第一时间正确地编写它。

请记住,真正的程序员使用蝴蝶: http://xkcd.com/378/

1
OscarRyz

您确实需要认为IDE只是编辑器+编译器+(某种程度上)Makefile +调试器(有时)+图形UI构建器(有时)),因此您当然可以选择不完全使用IDE,然后将其替换为您选择的编辑器(vim,emacs,gedit,notepad ++,[insert_others_here])),编译器(适用于Java的jdk,gcc,平台SDK或[对于C++使用[insert_Cpp_toolchain_here]],python解释器,或您的语言所拥有的任何工具链),某种makefile(例如autoh ...工具,cmake,ant,maven等),一些某种调试器(通常包含在编译器中),如果您需要图形用户界面生成器(便想到了网格),那么就可以拥有自己的IDE,而没有IDE。最好的方法取决于您(我认为今天的IDE有点被高估了)

1
Coyote21

是的,您可以在没有编译器和IDE的情况下编写代码。它只是在写。文本。

1
Matthew Read

我认为您指的是集成开发环境(IDE)。它们提供代码提示和语法突出显示等功能。编译器只是获取文件并将其编译为机器代码或字节代码。 IDE)通常通过向编译器发送命令来编译文件来使用编译器。

无需编译器就可以编写。这些语言使用“解释器”并在运行时处理脚本。

1
Ross

一个IDE=)所做的全部工作是在一个方便的位置提供几个工具,然后将某些过程自动化。这些工具通常是...

  • 文字编辑器
  • 编译器
  • 调试器
  • 文档查看器

要编写您的源代码,您可以使用任何可产生纯文本的文本编辑器,例如。 NotePad,Word或专用代码文本编辑器。

将源文件保存在文本文件中之后,您可以通过传递测试文件的命令行来启动编译器,例如cc my_program.c。这将生成一个可以执行的目标文件。

要调试程序,请通过传递程序的命令行启动调试器,例如。 gdb my_program然后,您可以设置断点,逐步执行程序,检查内容等。

对于IDE,所有这些操作都是通过在幕后按下按钮来完成的,而IDE将花哨的UI置于其上。

PS。真正的程序员使用命令行

1
Henry

我用vim编辑器(基本文本编辑器)编写日常代码,并且可以向您保证它运行顺利(我的大部分代码是PHP)。特别是因为我的开发环境是基于Dev的Linux发行版,所以我充分利用了Shell工具。我已经进行了一年的编程,这在处理远程应用程序部署和产品修改方面提供了很多帮助,您通常可以通过ssh访问* Nix控制台。

1
guiman

您实际上只需要一个文本编辑器(地狱,记事本就可以)和一个编译器/解释器(更重要的事情)。

您说过如何通过命令行执行此操作?狗屎听起来很疯狂,但很有可能。我的意思是仅使用Windows内置命令提示符,您就可以通过echo "some codez" > target_file.sauce将其写入文件,但您必须

A)善于做自己的事

B)编写一个简单的程序

C)疯狂击球

1
user7007

闪烁

他正在使用pico(纳米克隆)。我偶尔使用它。通常,我使用emacs,它的用处不大,但功能更多。

根据经验,我不使用IDE。有时候我会去调试它们,或者因为很难找到命令行工具链(看着Xilinx)。在做GUI的极少数情况下,我还使用它们来绘制C#。但是从我的经验来看,IDE并不是很好的编辑器:僵硬,奇怪的字符和弦,不太好用,支持的语言不多,占用太多内存。

我宁愿使用emacs。

您应该研究计算的历史。它写的相当容易,将为您提供有关我们工作的绝佳视角。

1
Paul Nathan

自1950年代以来一直使用数字存储程序计算机,而图形用户界面实际上只是在1960年代末才开始出现(对于1980年代的最终用户而言)。在此之前,人们不得不使用计算机并进行编程以某种方式

尽管其中包含一些错误(并非每个平台的用户界面都位于命令行系统之上),但您可能应该阅读尼尔·斯蒂芬森的短篇小说在开始时就是命令行

它将使您真正想到计算机上的工作原理,以及在没有IDE的情况下如何“可能”进行编程,通过命令行完成实际工作,等等。

1
Chris Hanson

对于数据库工作,您只需要一个文本编辑器(notepad ++)和一个命令行客户端,例如osql或sqlcmd。甚至没有编译器。

0
gbn

最近我已经升级到vim。我喜欢它以我使用的任何语言突出显示关键字的方式。叹气,只有当我可以进入真正的操作系统而不使用记事本时。

我的妻子使用edlin编写了COBOL。我认为这很有趣。

对我们过去使用的按键卡进行了这样的改进,并在24小时内停止了操作,只是发现我们有错字。

我在阁楼的某处有编码表格。

您有1和0?我们必须通过0画一条线。

但是你今天告诉年轻人,他们不会相信你。

j。

0
jp52

这不仅可能,而且-一生中至少有一次-您必须不使用IDE进行编程。它将帮助您了解编译过程,库的使用-也许会让您大开眼界,了解编程的真正含义。

另外,我认为一个好的文本编辑器要比IDE更好。对于MS-Windows,我建议 PSPad (就像MS-DOS时代的MultiEdit一样强大),对于GNU/Linux,请尝试 Geany (也许是在您的发行版的回购)。

0
ern0

不使用IDE进行编程是一种了解正在发生的事情的好方法。

我们从学校开始用简单的语法彩色文本编辑器进行编程。使用命令提示符(或通过简单的批处理脚本)进行编译。

只有了解了编程的基础之后,我们才转向功能更强大的编辑器,例如Eclipse或Visual Studio。

0
Carra

正如预期的那样,所有答案都说相同的事情:“当然可以!它只是文本!文本文本是文本文本!”通常来说,这是对的,并且是对您问题的最佳答案。大多数IDE只是操纵文本。

但这并不总是正确的,在某些情况下,脱离纯文本模型会带来很大的进步。这些进步通常被纯文本的纯粹主义者所拒绝(这是大多数人,因为它也应该是如何...不是巧合吗?!)。 IBM Visual Age是一个非常酷的例子,它死得很惨。

想到的另一个例子非常流行,它是用于创建Mac和iOS产品的Interface Builder。它的输出不是文本程序,而是序列化的对象,因此,如果不使用IB或编写自己的IB,就无法创建NIB。

纯粹主义者会说:“是的,但是Interface Builder是用文本代码编写的!”所以?

我坚信,如果我们能够超越纯文本范式,CS作为一个领域将会大大进步。除此之外,我认为我们最终会朝这个方向发展,但这将需要数十年的时间。首先,我们必须找出viemacs...哪个更好。

0
Dan Rosenstark

我使用99美分的笔记本电脑和可靠的Pilot Gel Pen编写程序。

他们只是将它们重新输入到Visual Studio中。

编写程序和编码是两件事(对我而言)。

0
Pablo

有趣的是:哈佛扩展学校正在教授没有IDE ... ...

最简单的方法是使用基本的文本编辑器编写Java程序,然后使用FTP程序将文件传输到FAS系统,通过telnet连接,然后在FAS上编译并运行它们(fas .harvard.edu-Java)。它们必须位于FAS上才能提交作业。要使用此方法,您可能需要了解足够的知识,其中之一Unix文本编辑器可以对您的文件进行任何所需的快速更正,或计划在本地更新文件并重新传输。有关传输文件的更多信息,请参见FAQ)页面。

请勿使用文字处理器,例如Word或WordPerfect!它们添加了许多您看不到的格式化字符,但是这将阻止您的程序进行编译。在Windows上,您可以使用记事本或写字板,并确保将文件另存为带有.Java扩展名的“文本文档”。如果系统尝试添加“ .txt”后缀,请在“保存”框中在文件名和扩展名两边加上引号,以防止出现这种情况。您也可以在“有用的下载”部分中尝试使用任何一种编辑器(我们强烈建议在PC上使用的一种是Programmers File Editor)。在Mac上,使用BBEdit Lite(也在“资源”页面上链接),或使用“终端”窗口中可用的内置Unix编辑器之一。您可以获取一个安全的telnet程序,也可以使用自己拥有的程序,将telnet接入FAS系统,然后在系统上编写和编辑程序。您可以尝试使用三种Unix编辑器:pico,emacs和vi。编写程序并保存后,如上所述,您可以在FAS上编译并运行它

http://www.fas.harvard.edu/~libe50a/homework.html http://www.fas.harvard.edu/~libe50a/faq.html http:/ /www.fas.harvard.edu/~libe50a/Java.html

如果您问我,他们在折磨孩子,但这没关系。在任何一年中,哈佛都不能接受更多的斯巴达人,更不用说Mothakes,Perioikoi和Helot了。


是的,有可能。我想像记事本之类的东西是无IDE的,但是emacs和Textpad(我都用于C,Java课程)都被认为是IDE。现在...在VS2010中用C#编码后,对于WinForms和所有其他功能,我不想再回到工作中的文本编辑器中了-我会因为不做废话而大喊大叫。

但是,对于学术项目,当示例很小时,不使用IDE是有意义的。请记住:在入门编程类中,不存在许多实际问题。您可能不必将.xml文件作为资源添加到dll。您可能不需要太多调试,也不需要使用代码协定,也不需要从不受管理的C++到C++/ClI,再到C#,然后再返回。学术任务不必太杂乱,因为它们可以从头开始,并以工时/周进行度量。所有文件都可以只是一个项目的一部分(甚至对于编译器或OS类而言)。一个IDE就像Visual Studio一样,实际上当一个简单的makefile会起作用时,它会阻碍您的工作。一个简单的makefile文件和两个简单​​的C文件可能就是您所需要的。实际上,当您自己指定每个标志时,您倾向于以这种方式进行更多控制。我曾经在大学实验室中进行过这样的编码。 ,但是其中一台“嵌入式”(意味着它必须非常小,以使其可以安装在飞机上)计算机没有GUI,也没有鼠标:)我仍然能够登录,编辑,编译和调试C程序,以及添加驱动程序并重新编译内核。

0
Job