当前位置: 首页 > 面试题库 >

如果公司使用C ++,C#或Java作为应用程序语言,为什么还要学习Perl,Python,Ruby?

况庆
2023-03-14
问题内容

我想知道为什么C ++,C#,Java开发人员想学习动态语言?

假设公司不会将其主要开发语言从C ++ / C#/ Java转换为动态语言,那么动态语言有什么用?

在学习了几天后,动态语言比使用多年的静态语言可以更快或更更好地完成哪些辅助任务?

更新资料

看到前几个响应后,很明显有两个问题。我的主要利益是可以作为用人单位支付的费用。也就是说,我正在寻找雇主为学习动态语言提供资金的理由。除了显而易见的是,雇员将拥有更广阔的视野之外,雇主通常还在寻找一些“真正的”福利。


问题答案:

很多时候出现了一些快速任务,这些任务并不是您正在开发的主要软件的一部分。有时任务是一次性完成的,即将该文件与数据库进行比较,然后让我知道它们之间的区别。与在Java或C#中相比,在Perl
/ Ruby / Python中进行文本解析要容易得多(部分原因是使用正则表达式要容易得多)。使用Perl / Ruby /
Python解析文本文件(甚至是vbscript 压缩 ,然后将其加载到数据库中)可能要比创建Java /
C#程序来执行或通过以下方式花费更少的时间手。


而且,由于大多数动态语言都易于解析文本,因此它们非常适合代码生成。确保您的最终项目必须使用C#/ Java / Transact
SQL,但与其剪切和粘贴100次,发现错误以及剪切和粘贴另外100次相比,使用代码生成器通常(但并非总是)更容易。

最近的一个工作示例是,我们需要将数据从一个会计系统导入我们的会计系统。该系统具有导入格式,但是旧系统具有完全不同的格式(固定宽度,尽管有些东西必须匹配)。任务不是创建一个程序来一次又一次地迁移数据。它将数据推送到我们的系统中,然后继续进行维护。因此,即使我们是C#和SQL
Server商店,我仍然使用Python将数据转换为应用程序可以导入的格式。最终,我使用python没关系,数据在系统中也很重要。我的老板印象深刻。

我经常看到用于测试的动态语言。与创建等效的Java程序相比,创建一个Python / Perl /
Ruby程序以链接到Web服务并向其投放一些数据要容易得多。您还可以使用python打击命令行程序,生成大量垃圾(但仍然有效)的测试数据,等等。

动态语言的另一大优势是代码生成。创建C#/ C ++ / Java代码。以下是一些示例

我经常看到的第一个代码生成任务是人们使用动态语言来维护系统中的常量。可以使用动态语言来相当轻松地解析文本文件并使用枚举创建Java /
C#代码,而无需手动编码一堆枚举。

SQL完全是另外一类游戏,但是您经常通过剪切和粘贴100次而不是尝试执行一个函数来获得更好的性能(由于缓存执行计划或将复杂的逻辑放入函数中,导致您逐行而不是逐行执行)一套)。实际上,使用表定义自动创建某些存储过程非常有用。

最好购买代码生成器。但是,即使您不这样做,花时间进行剪切/粘贴还是会更有趣,还是一次创建一个Perl / Python /
Ruby脚本然后生成代码会更有趣?如果您花一些时间来编写代码,而创建代码生成器的时间却更少,那么即使您使用它一次,也可以节省时间并节省金钱。如果创建代码生成器花费的时间比处理一次代码花费的时间长,但是您知道必须多次更新代码,那么这样做仍然有意义。如果要花2个小时的时间来编写代码,那么要花4个小时来完成生成器,但是您知道必须花5到6倍的时间来完成等效的代码生成工作,这显然比创建生成器要好。

动态语言也比Java / C#/ C / C
++容易一些。特别是正则表达式。如果您开始在Perl中使用正则表达式并意识到它们的价值,那么您可能突然开始使用Java正则表达式库。如果有的话,可能还有别的东西。

最后,我将为您提供关于动态语言的一项出色的任务示例。我的同事不得不在一个充满文件的目录下将它们刻录到各个客户的各种CD上。有几个客户,但是有很多文件,您必须查看他们才能看到它们是什么。他手工完成了这项任务。。。一个Java
/ C#程序本可以节省时间,但是花一时间,加上所有的开发开销,这是不值得的。但是,在Perl / Python /
Ruby中一起拍东西可能是值得的。他花了几个小时去做。创建Python脚本以检查每个文件,匹配要访问的客户,然后将文件移动到适当的位置,花费的时间不到一个。同样,这不是标准作业的一部分。但是这项任务一次完成。最好自己动手做,花更多的时间使Java
/ C#完成任务,或花更少的时间在Python / Perl / Ruby中完成任务。如果您使用的是C或C ,则由于使用C或C
进行编程时要特别注意(指针,不检查数组边界等),因此问题会更加严重。



 类似资料:
  • 主要内容:C++和C语言的血缘关系,再说C++教程,我的建议C++ 读作“C加加”,是“C Plus Plus”的简称。顾名思义,C++ 是在C语言的基础上增加新特性,玩出了新花样,所以叫“C Plus Plus”,就像 iPhone 7S 和 iPhone 7、Win10 和 Win7 的关系。 从语法上看,C语言是 C++ 的一部分,C语言代码几乎不用修改就能够以 C++ 的方式编译,这给很多初学者带来了不小的困惑,学习 C++ 之前到底要不要先学习C

  • C是一种通用的高级语言,最初由Dennis M. Ritchie开发,用于在贝尔实验室开发UNIX操作系统。 C最初于1972年首次在DEC PDP-11计算机上实现。

  • 问题内容: Angular对于构建单页应用程序非常有用。它基本上建立在当前范例上,在该范例中我们向不同的端点发出请求,以帮助我们创建更好的单页应用程序。 另一方面,我们拥有的Meteor似乎更加强大,特别是因为它们具有称为DDP的功能,该功能基本上允许双向数据流。看来Meteor是Angular的超集,并且显然是更好的选择。 尽管Angular确实提供了一些诸如测试和本地化之类的功能,但我只是不明

  • 本文向大家介绍Scala编程语言的重要性:为什么要学习Scala?,包括了Scala编程语言的重要性:为什么要学习Scala?的使用技巧和注意事项,需要的朋友参考一下 顾名思义,Scala是一种“可扩展编程语言”。Scala已发现其可用于开发各种规模的软件,例如,使用Scala,您可以为大学考试开发一个小项目,也可以将其用于可以完成大量任务的项目。主要在服务器管理和数据科学中发现它的用途,Scal

  • 问题内容: 我的大部分编程背景是Java,并且我仍在使用Java进行大多数编程。但是,我开始在工作中的一些辅助项目中学习Python,并且希望尽可能独立于Java背景学习它-即,我不想只用Python编程Java。我应该注意些什么? 一个简单的例子- 浏览Python教程时,我发现一个事实:函数(例如列表)的默认可变参数得以保留(每次调用都记住)。这对我作为Java程序员来说是违反直觉的,并且很难

  • 问题内容: 改善这个问题 更新 (为清楚起见,以减少歧义): 我将开始修补android应用程序。我打算使用NDK用C 编写C语言(因为我在C 方面有更多的经验,并且喜欢Java),但是在Android NDK页面 上遇到了以下内容: 仅当NDK对您的应用 程序 至关重要时,才应使用NDK- 决不因为您只喜欢使用C / C ++进行编程。 我的印象是,只要适合您的工作,就应该使用自己喜欢的语言。有