有人用javascript写桌面程序的吗

JavaScript05

有人用javascript写桌面程序的吗,第1张

通过HTML、CSS、JavaScript来编写本地应用程序。

简单地说就是一个本地客户端应用程序使用一个内置的浏览器内核渲染前端界面,另一方面还可以调用本地系统级API,实现本地应用程序的各种功能。

使用该技术的部分产品:

网易云音乐PC客户端

有道词典PC客户端 (基于heX)

Atom文本编辑器 (基于Electron)

Visual Studio Code编辑器 (基于Electron)

相关技术

C++ / CEF

https://bitbucket.org/chromiumembedded/cef

CEF (Chromium Embedded Framework)

谷歌浏览器嵌入式框架,即谷歌浏览器内核,配合C++使用。

Electron

http://electron.atom.io/

Electron基于Node.js,使用javascript编程。

个人对Node.js的理解

Node.js是一个JavaScript 解释器,是类似Python的东西

Node.js使用JavaScript语言,Python使用Python语言

Node.js常用于编写Web服务器(使用http等模块)

Python也有类似的框架,比如Django

NW.js

NW.js 原名 node-webkit

基于 Chromium 和 Node.js

heX

heX是有道发起的开源项目

基于开源项目 CEF,它内部整合了开源项目 Chromium 及 Node.JS

Javascript 除了性能略捉鸡外基本是全能的,可以应用在以下领域:

1. 网站开发

1.1. 网站前端开发

Javascript 的老本行。用来实现前端逻辑,简单的比如说点一个按钮会发生什么之类的,复杂的你可以用 js 写个 x86 模拟器再灌个 linux 系统进去。

1.2. 网站后端开发

Node.js 让程序员可以用 js 自由地写后端了。

2. 移动开发

2.1. Web app

HTML5 提供了很多 API 支持,可以实现原生应用拥有的大部分功能,但是性能有待提高。像 Firefox OS 就是基于 web app 的移动操作系统。

2.2. 混合式应用开发

把原生应用的一部分用前端技术实现,使原生应用更加灵活。很多应用都会这样做。PhoneGap 之类平台的出现允许程序员使用 js 来进行移动应用开发。

3. 桌面开发

主要是指 chrome 等浏览器能把 js 写的程序打包成桌面应用。Google 力推的 Chrome OS 也是基于 web app 的操作系统。

4. 插件开发

Javascript 是唯一一种在所有主流平台都被原生支持的编程语言,因此在所有主流平台都可以使用 js 进行插件开发。常见的有浏览器插件和扩展程序,同时大部分移动应用的插件平台也是使用 js 进行插件开发的,因为一次开发可以保证跨平台使用。

没错,几乎所有领域都可以使用 js 进行开发,就算现在不能以后也会可以的,所有能用 Javascript 写的东西最终都会被 Javascript 写出来。

目前,最优的选择有四个: 1.如果只在win下使用,.net form是不二选择,可谓是又快又好,企业应用或定制开发都是相当好的,初学者也可以入手。 2.electron,跨平台。需要会前端,必须熟悉js、css和html。属于前端人员大杀器,如果是初学者,需要一下子学三样东西,再加上electron的进程间通信,可能会被搞懵。 3. qt5,可以使用qml(js语法)进行UI编程,但是需要懂c艹,但是写软件相当快,还可以写安卓、ios、Linux、嵌入式中的应用。 4.flutter,刚刚正式支持win平台的软件开发。谷歌出的这个东西,适合没有基础的初学者,因为是一个全新的体系,全新的语言,写ios、安卓非常高效,之后还会兼容h5。如果是初学者可以跟着走,值得尝试。但是新东西总有一些坑。 正式项目跨平台建议electron或qt,只用win平台强烈建议微软自己的net。个人技术尝试建议flutter。 桌面端开发跨平台的,如果你是轻量级的项目,那么我推荐你用electron, 目前使用Electron来开发的桌面应用非常多,我们最熟悉的比如Atom,VScode等等。 而且在github上也能找到许多应用使用了electron。 electron是Node,Chromium,html,css,js的结合框架,这就需要你有一定的前端基础。其实只需要了解一下electron的API就行了,其他的就像你在做web是一样的。 这种方式最大的缺点就是性能,还有透明窗口也有问题。所以在做需要性能方面占有很大成分的项目时,并不推荐使用这个方式。 那么其他的,就是最近几年使用比较多的windows directui框架,但它不是跨平台的。 那么就引出了qt,作为c++跨平台的界面框架,这个上手的话,我觉得对一般人是有难度的,因为首先需要扎实的c++功底,其次你要熟悉控件的制作原理,因为有时候你需要定制自己的UI控件。它现在在嵌入式,军工领域非常受欢迎。但是整个库非常臃肿庞大,而且开发界面的效率也非常低。如果来做互联网项目,迭代更新的速度根本就跟不上。 目前都只有大公司会采用,像maya这种生产力型的应用很多是qt做的。 还有一种是直接使用Cef加js,比如网易云音乐,就是这么搞的,但是很多和系统平台的交互接口你需要重写,等于是需要自己造轮子。工作量大,目前没有适合的框架给你套用,也需要扎实的c++功底。 其实pc端的应用基本也就windows会火一些,再加一个macos,那么选择qt应该会很好一点,毕竟你自己造一个跨平台的框架,太费时。总之,做跨平台就意味着,不可能做到既有效率又完美的实现各种功能,许多都要自己摸索。 win桌面端直接上visual studio啊!然后你熟悉什么语言?vb.net,c#,c++都有相应的win桌面工具。直接用就好了,非常好用 编程语言这种东西无所谓,只要能用啥都可以。 主要看你老板需要和你会用什么语言。 比如 我用AS编安卓程序,当然用JAVA。不过我后台最开始用ASP和ASP.NET来做,现在换PHP了。桌面端用QT或者VB做。 涉及单片机部分控制也用C。现在做跨平台的了 开始以QT为主了。 只要能达到目的啥都可以。 学会1-2种 换其他的也不是很难。 对初学者来建议学C起步吧。 精通一门,重新学个语言入门也就1个月的事。 PC桌面程序,如果简单一点的,用pyqt5+python的开发难度和周期都比较现实一点 会C++ 用Qt5 非常不错 写代码效率很高 会js 用atom使用的那个框架 会Python用PyQt 写代码很快 会java用JavaFX 看语言咯 还可以用delphi,其firemonkey框架发布8年时间,支持跨平台:win,安卓,ios,macos,linux,后续支持webassembly,界面是控件拖拽布局所见即所得,开发效率较高。编译生成的是机器码,编译速度快,调试方便,其生成机器码运行效率较高,支持x86,arm的32位64位处理器。支持跨平台3D界面,蓝牙通讯,定位,重力,摄像等,支持多种SQL,NoSQL数据库。单个开发工具实现前后端开发,跨平台开发。适合个人和小公司用一套工具实现大部分开发需求。主要有以下几种技术 ### Duilib #### 简述 Duilib是在Windows平台上使用最广泛的类库,使用C++和XML混合编程,国内很多计算机企业都喜欢使用这个类库,可能是由于他的技术许可比较宽泛的原因。 适合于界面比较简单的软件,视觉特效丰富,局限于Windows的平台。例子:360电脑管家。 #### 优势 #### 劣势 ### Gtk、Qt或WxWidget: #### 简述 三种基本可以做到跨平台的技术,使用C/C++开发,使用者广泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各种绑定技术)使用自绘技术。 结构严谨,软件可以做的很大很复杂。例子:WPS和Maya。 #### 优势 #### 劣势 ### Electron: #### 简介 使用Web技术开发桌面软件,基于Chromium(Chrome)引擎,使用JS编程语言,绝大多数使用者都是原来的网页开发者。 绝大多数都是爱好者使用,处于“勉强可用”的地步。 适合大面积静态展示型软件使用。例子:网易云音乐。 #### 优势 #### 劣势 ### QtQuick(QML) #### 简述 Qt公司开发的一款基于OpenGL的图形类库,有显卡加速,类似于Duilib。采用了C++与QML混合编程。QML类似于JavaScript语言。 QtQuick下一个版本在Qt 6上更加强大,业界期待已久。 #### 优势 #### 劣势### Atk、Swing或JavaFX 使用Java语言开发软件,有JDK加持业界积累的众多Java类库支持。有不输于VS的IDEA加持,本应该更棒,只是现在已经式微了。 绝大多数使用者都是企业开发(不追求界面美观)、爱好者(开发顺手)。 ### WinForm、WPF或Xamarin: 使用C#开发,WinForm和WPF局限于Windows平台。有VisualStudio加持使用很爽。 ### Flutter: 使用Dart语言,新类库,bug可能会很多。 ### SwiftUI或Cocoa: 苹果平台原生界面技术,macOS平台内建支持,不是macOS专用软件不推荐。 ### Win32: 经典Windows 平台API,绝大多数只有一些老软件还在使用,不是维护老软件不推荐。winform,不二选择 webview2,作为一个浏览器控件嵌入在桌面应用中,支持.net core和.net framework