草庐IT

浅谈我涉及到的编程语言

发疯的man 2023-07-09 原文

​仅代表个人观点,不喜勿喷。

博主是java程序员,一直以来都是用的java开发,中间接触过python一段时间,也接触过c#一段时间,也接触过大数据一段时间,也接触过易语言&按键精灵一段时间,还有世界上最好的语言php。

咳咳,我现在就简单说一下我接触这些语言的背景和自己的一些理解。

首先是python,我当时工作一年多的时候接触的,因为是当时py当时很火,听说是代码简洁,一行低java10行。而且爬虫比较方便。有一个爬虫框架是Scrapy,其实当时学他就是单纯的学爬虫,然后可以很方便的制作exe小工具。当时学了有1-2个月左右,把py的基础撸了一遍,然后着手学爬虫框架,实话实说,py确实方便,比java要简洁的多的多,一行低10行没吹牛。Scrapy框架写爬虫也是非常的方便。现在想想,其实每个语言都能写爬虫,无非是代码量的问题。但是如果是为了仅仅的代码量少而去学一门新语言,那浪费的时间真的划不来。而且,我不喜欢python的写法,全靠缩进 ,竟然没有大括号包着。强迫症真是不能忍。总体来说还行,可以写一些小工具和爬虫还有数据处理。

c#,这个是工作的时候接触的,给安排了一个c#+vba的项目,内心一万个不愿意,反正我是感觉c#非常的不好用。按道理说比java出来的晚应该比java优秀才对,但是,真没发现那里优秀。就是因为接收的这个项目,一个月之后成功跑路,我一个java程序员学啥c#,还有那个全宇宙最好的编辑器vs studio ,和IDEA系列的工具比起来非常的难用。光一个安装包都5个多G,光安装非常麻烦。调试也不舒服。再说c#,代码真的是写的很难受,还有那个拖拽式的控件UI,难玩又不好看。想实现一个读取excel的功能,网上找了一圈,资料太少,而且在网上找了好几个demo没一个成功。不是这报错就是这报错或者缺少文件。差劲的一逼。web的随便一个功能,用java和php写那个不是分分钟写出来,网上大把的demo。c#写桌面端有优势,可以写exe程序,还有大型游戏和工厂erp程序。还有那个vba语言,哎,不说了,连夜扛着火车跑的,垃圾项目。总体来讲,垃圾的一逼,不建议学,写代码一点都不舒服,web用不上,写桌面端现在js就可以写。写小工具可以用易语言效率高的一逼。非特殊原因没必要上c#。个人观点,勿喷

大数据,其实大数据也是java,现在我们常说的大数据就是java体系,比如hadoop,hive,spark(这个是scala语言的框架,类似java),hbase等技术栈。当时学他纯粹是感觉大数据的工资比较高而已,比普通的java程序员要高,感觉以后大数据是个趋势,就学习了一段时间,当然有java基础学起来还是非常快的,前提是你需要了解下linux的基础知识,因为大数据的第一步就是你需要准备起码三台虚拟机搭一个Hadoop集群,反正是每一块都是集群集群集群。自学入门确实有门槛,就光环境这一块都劝退许多人,我当时搭Hadoop集群花了我2天时间。哎。反正是学大数据是非常花时间的,各种配置文件,各种参数。而且,数据量也是大问题,不自己造个几百万上千万的数据玩起来都没啥意思。框架、工具死逼多,学的累死。而且看不到成效。你不像写web,你写好了,他就是一个网站,就可以别人用,大数据不一样,他是依附在web之后的服务,你只有web产生数据了,才会提现到大数据的用处。把spark学完就不学了。总体来讲,大数据还行,不难,会java学起来更快。

易语言、按键精灵。这个是因为想写一些exe的小工具,还有就是想写一些自动化的脚本。比如自动阅读器,自动回复,抢购软件,这类的软件。都是用的易语言写的。exe是用易语言写的,apk的是用按键精灵写的,说真的,这玩意确实能挣钱,而且很挣钱很挣钱很挣钱。易语言门槛很低,而且很简单,稍微有点编程基础,有点逻辑能力的就可以上手,环境也简单,也是各种模块,什么精益模块什么的。不过是中文编程,估计大多数程序员感觉不习惯,而且编辑器感觉不舒服,和idea这类正规的比起来,天差地。但是你要是写一个exe的小工具那真的是快的一逼,而且界面还很漂亮。比c#效率高太多,就好比你用vue和纯js实现一个功能一样的效率。总体来说还挺有意思的,值的学习一下,学的好的话还可以写个小工具让别人用,比如抢购脚本,自动回复顶帖工具之类的。

php,因为php是世界上最好的语言。懂的人自然懂。不懂的人就当个段子看看吧,说下优点,效率高,代码量少,开发小,中小型项目效率比java高太多。不用编译,改好就能用,内置丰富的函数,java都需要因第三方包才能实现。一键搭建环境。占内存少。网上80%的网站都是php搭建的。缺点:弱类型语言,不知道返回的啥玩意,感觉全靠盲猜,而且不易维护,比如我写java的体验就是,我很清楚我的每一步都在干啥,返回的是啥,功能写完一气呵成开始调试,php我目前的状态是,每一步都需要echo打印。不然你都不知道下一步该咋搞,估计是我不熟的缘故。还有一点,调试太麻烦。java很容易实现,php麻烦的一逼。装插件改配置。php自我感觉相比java,没有java适合多人协同开发。php为啥快,1.弱类型,2.对html支持好,可以内嵌写。3.有一个牛逼的数组。包天包地包空气。虽然php目前在走下披路,但是还是不可否认,是世界上最好的语言。讲个经典的段子,同一个项目一块开发,php的都已经上线盈利了,java的还在搭框架。

java,非常成熟非常重的语言,目前最流行的语言,位于榜首不是没有道理的。缺点,写起来麻烦,啰里啰嗦。优点,严谨优雅。各种中间件,有各种成熟的解决方案,所以有许多公司慢慢发展起来之后都从php或者c#转java。企业级项目和政府,银行项目一般都用java,人才多。

最后​总结下。

编程只是一个工具,思想都是想通的。没有好坏之分,只有用的顺不顺,术业有专攻,每个编程语言都有自己擅长的一个方面​。只要能又快又好的实现需求就是​好的语言。我们都是CRUD搬砖工而已,都是站在巨人的肩膀上粘贴复制,拿起轮子就用,不符合需求再换个轮子​。我想这是80%程序猿的状态吧​。身为程序猿,你就得有一个热爱学习,热爱折腾,对任何未知事物有一颗​好奇的心。我喜欢和比我强的人聊天,因为我脑子里任何时候都有十万个为什么。​对什么事都非常的好奇。发现问题,讨论问题,解决问题的过程非常的有成就感​。我写代码纯粹是我喜欢写代码,如果哪天我不喜欢了,估计也就换行了​。把爱好当成工作,顺便还能挣点钱,希望看到这篇文章的你也是​。

如果对你有帮助,别忘了三连,在看,点赞,转发​。你的支持是我最大的动力​。

有关浅谈我涉及到的编程语言的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby - 寻找通过阅读代码确定编程语言的ruby gem? - 2

    几个月前,我读了一篇关于ruby​​gem的博客文章,它可以通过阅读代码本身来确定编程语言。对于我的生活,我不记得博客或gem的名称。谷歌搜索“ruby编程语言猜测”及其变体也无济于事。有人碰巧知道相关gem的名称吗? 最佳答案 是这个吗:http://github.com/chrislo/sourceclassifier/tree/master 关于ruby-寻找通过阅读代码确定编程语言的rubygem?,我们在StackOverflow上找到一个类似的问题:

  3. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  4. 7个大一C语言必学的程序 / C语言经典代码大全 - 2

    嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来

  5. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  6. ruby - 我正在学习编程并选择了 Ruby。我应该升级到 Ruby 1.9 吗? - 2

    我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or

  7. ruby - 如何以编程方式删除实例上的 "singleton information"以使其编码(marshal)? - 2

    我创建了一个由于“在运行时执行的单例元类定义”而无法编码的对象(这段代码的描述是否正确?)。这是通过以下代码执行的:#defineclassXthatmyusesingletonclassmetaprogrammingfeatures#throughcallofmethod:break_marshalling!classXdefbreak_marshalling!meta_class=class我该怎么做才能使对象编码正确?是否可以从对象instance_of_x的classX中“移除”单例组件?我真的需要一个建议,因为我们的一些对象需要通过Marshal.dump序列化机制进行缓存。

  8. Ruby 元编程问题 - 2

    我正在查看Ruby日志记录库Logging.logger方法并从sourceatgithub提出问题与这段代码有关:logger=::Logging::Logger.new(name)logger.add_appendersappenderlogger.additive=falseclass我知道类 最佳答案 这实际上删除了方法(当它实际被执行时)。这是确保close不会被调用两次的保障措施。看起来好像有嵌套的“class 关于Ruby元编程问题,我们在StackOverflow上找到一

  9. ruby - Paperclip:以编程方式分配图像并设置其名称 - 2

    使用Paperclip,我想从这样的URL抓取图像:require'open-uri'user.photo=open(url)问题是我最后得到一个像“open-uri20110915-4852-1o7k5uw”这样的文件名。有什么方法可以更改user.photo上的文件名?作为一个额外的变化,Paperclip将我的文件存储在S3上,所以如果我可以在初始分配中设置我想要的文件名就更好了,这样图像就会上传到正确的S3key。像这样:user.photo=open(url),:filename=>URI.parse(url).path 最佳答案

  10. ruby - 如何以编程方式检查证书是否已被吊销? - 2

    我正在开发一个xcode自动构建系统。在执行一些预构建验证时,我想检查指定的证书文件是否已被撤销。我了解securityverify-cert验证其他证书属性但不验证吊销。我如何检查撤销?我正在用Ruby编写构建系统,但我对任何语言的想法都持开放态度。我阅读了这个答案(Openssl-Howtocheckifacertificateisrevokedornot),但指向底部的链接(DoesOpenSSLautomaticallyhandleCRLs(CertificateRevocationLists)now?)进入的Material对我的目的来说有点过于复杂(用户上传已撤销的证书是一

随机推荐