开源项目越来越青睐 JavaScript

【前端面试必杀技】校招前端简历如何得到面试官青睐(全面指导版) 校招前端简历如何写?来看看这篇文章,你就懂了。 阅读详情

开源项目们都使用什么开发语言?一份由 Black Duck 发表的最新研究报告显示,开源项目越来越青睐 JavaScript,他们通过对项目中使用的各种开发语言的代码行数进行统计,发现 C 语言以 40% 的比例遥遥领先,而 JavaScript 和 PHP 则呈明显上升趋势。

多数开源项目使用超过一种开发语言,Black Duck 的执行副总裁 Peter Vescuso 表示,他们发现,去年推出的开源项目中,36%的项目使用了 JavaScript。而从过去的12个月来看,JavaScript 代码的总行数占据了7.6% 的比重,在过去的12个月,上升了2.1%。

使用代码行数比重进行统计是一种方式,这种统计方式对那些不够精炼的语言来说是有利的,Vescuso 说,为了公平,他们还使用了另外一种统计方式,某种语言在所有开源项目中使用的次数。在这种方式下,他们发现,过去的12个月中,所有开源项目中有32% 用到了C语言,而 JavaScript 则以36% 的比重领先,C++ 在过去的12个月见于26%的开源项目,如果按代码量统计,C++的比重为13%。

PHP 在过去的12个月的开源项目中的使用比例为17%,按代码量统计其比重则为5.2%,比去年上升了0.3%。

Black Duck 还做了一个统计,假如每个项目只统计一种语言(使用最多的那种),Perl 以15% 的比重领先,Java 和 C# 以11% 的比重并列第二,JavaScript 则以10% 的比重居三。

对于非开源软件,Black Duck 的报告并未涉及,不过 Vescuso 表示,他们同很多开发者做过交流,他们表示,COBOL, C# 以及 Visual Basic 等语言在非开源软件中被广泛使用。

本文来源:http://www.internetnews.com/dev-news/article.php/3834441/JavaScript+PHP+on+the+Rise+for+Open+Source+Devs.htm
中文翻译来源:COMSHARP CMS 官方网站

Tiled-js:一款基于JavaScript的2D游戏引擎 Tiled-js是基于JavaScript的游戏地图编辑器,它拥有直观的用户界面,使得开发者能够轻松创建和编辑复杂的游戏地图。作为一个开源项目,Tiled-js支持多种游戏开发框架,其轻量级的设计和灵活的数据处理方式,使其在2D游戏开发领域特别受到青睐。Tiled-js的核心功能围绕着地图的创建、编辑和导出:地图创建与编辑:Tiled-js提供了友好的地图创建向导,支持多种图块集。开发者可以快速搭建出地图框架,并通过简单的拖放操作来编辑地图。图块管理。 阅读详情

相关推荐

手写Socket Web服务器:深入HTTP协议底层原理

HTTP协议是Web通信的基石,其本质是一套严格定义的文本格式与状态交互规范。理解它需回归传输层——TCP连接建立、请求响应格式(如状态行、头/体分隔符\r\n\r\n)、字符编码与字节长度一致性等核心原理。这些知识直接决定CORS拦截、中文乱码、Content-Length错误等高频问题的排查效率。在现代框架封装日益厚重的今天,亲手用Socket实现一个可被Chrome识别的极简Web服务器,成为掌握Web运行机制最有效的实践路径。本文即以DebugLZQ经典案例为蓝本,还原从URI解析、DNS查询、So

weixin_40192258的博客 535

开源项目越来越青睐JavaScript

开源项目们都使用什么开发语言?一份由 Black Duck 发表的最新研究报告显示,开源项目越来越青睐 JavaScript,他们通过对项目中使用的各种开发语言的代码行数进行统计,发现 C 语言以 40% 的比例遥遥领先,而 JavaScript 和 PHP 则呈明显上升趋势。多数开源项目使用超过一种开发语言,Black Duck 的执行副总裁 Peter Vescuso 表示,他们发现,去年

旭韵飞翔的专栏 338

Ansys Lumerical FDTD仿真加速策略与高性能硬件选型指南

本文深入探讨了Ansys Lumerical FDTD仿真的核心加速策略,涵盖算法优化与硬件选型两大维度。通过合理运用非均匀网格、对称边界条件等算法技巧,并精准匹配CPU/GPU计算资源与高性能硬件配置,可显著提升仿真效率,将计算时间从数天缩短至数小时。

a0b1c2d3的专栏 624

Node.js | JavaScript也能写后端?

Node.js作为前端人员高薪必备技能,本文带你了解Node.js的前世今生以及环境搭建

只想和你一起进步 9954

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

奔图M6700-M6800-M7100-M7200 系列打印机拆解教程?

m0_58098052的博客 1600

从零开始:在Ubuntu 22.04上配置Isaac Gym Preview 3环境(含常见错误解决方案)

本文提供了在Ubuntu 22.04系统上从零开始配置Isaac Gym Preview 3环境的完整实战指南。内容涵盖NVIDIA驱动安装、Conda环境搭建、CUDA与PyTorch版本精准匹配、Isaac Gym核心安装与验证,并重点介绍了针对四足机器人等复杂系统的强化学习训练环境配置、常见错误解决方案及性能调优技巧,旨在帮助开发者高效部署这一高性能物理仿真平台。

weixin_29048775的博客 393

备受开发者青睐的13款热门开源项目

备受开发者青睐的13款热门开源项目 发表于21小时前| 4944次阅读| 来源优快云| 17 条评论| 作者夏梦竹 开源开发者TeXnicProjectLibreD3.jsCodeMirror 摘要:本文我们总结了国外13款热门级的开源项目,包括ProjectLibre、OpenBravo POS、Impress.JS、Reveal.JS、Diaspora等,这些项

Aaronzzq的专栏 1702

dify离线部署

以bge-m3为例,本地部署bge-m3首先在一台能连网的linux服务器上(部署有ollama)创建想要保存模型的文件夹编辑ollama.service,配置ollama模型的保存路径添加模型存储地址将models目录设置属主,必须做,否则ollama无法启动重新加载配置文件并重启ollama测试ollama 运行是否正常最后拉取 bge-m3可在/opt/LLMModels/bge_m3/models目录下看到拉取得模型使用tar命令压缩文件夹。

weixin_42538734的博客 3073

探索 Functional Programming in JavaScript:一个引人入胜的开源项目

探索 Functional Programming in JavaScript:一个引人入胜的开源项目 在现代Web开发中,JavaScript的地位无可替代。随着编程范式的多样化,Functional Programming(函数式编程)的概念也逐渐受到开发者们的青睐。今天,我们要向大家推荐一个开源项目——,这是一个由luijar维护的,旨在帮助开发者理解和实践函数式编程的资源库。 项目简介 该...

gitblog_00064的博客 327

STM32与FreeRTOS:基于TIM6的高精度系统时间获取实践

本文详细介绍了在STM32与FreeRTOS环境下,基于TIM6定时器实现高精度系统时间获取的实践方法。通过复用FreeRTOS的TIM6硬件资源,开发者可以高效获取毫秒级和微秒级系统时间,同时解决时间溢出和中断处理等关键问题。文章还提供了CubeMX配置技巧、代码实现及性能优化建议,适用于嵌入式系统开发中的精确时间管理需求。

weixin_29169505的博客 359

33、Windows Server 2016 系统管理与安全防护指南

本文详细介绍了Windows Server 2016系统中的三大核心管理与安全功能:WSUS补丁管理、Windows Defender反恶意软件配置以及Windows Server Backup数据备份与恢复。涵盖WSUS初始同步、组策略配置客户端、混合环境更新评估流程;Windows Defender的图形化与PowerShell管理方式,以及通过组策略集中管控;Windows Server Backup的安装、单次与计划备份设置、增量备份机制和文件恢复操作。内容适用于企业IT管理员进行系统维护与安全防护

beta5的博客 97

JS学习笔记-关于JavaScript

JavaScript JavaScript 是 web 开发人员必须学习的 3 门语言中的一门,都包括了HTML 定义了网页的内容;CSS 描述了网页的布局;JavaScript 控制了网页的行为; JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。 JS的主要功能有: 1

黑山老妖的博客 251

Cost-effective Attention Reuse across Multi-turn Conversations in Large Language Model Serving

通过多回合对话与人类互动是大型语言模型(LLM)的一个基本特征。然而,由于需要重复计算历史token的密钥值(KV)缓存,用于执行多回合会话的现有LLM服务引擎效率低下,从而导致高服务成本。为了解决这个问题,本文提出了AttentionStore,这是一种新的注意力机制,可以在多回合对话中重用KV缓存(即注意力重用),显著降低重复计算开销。AttentionStore维护一个分层的KV缓存系统,该系统利用经济高效的内存/存储介质为所有请求保存KV缓存。

c_cpp_csharp的专栏 395

Orga.js 开源项目快速入门指南

Orga.js 开源项目快速入门指南 项目概述 Orga.js 是一个基于 JavaScript 的灵活的 Org 模式语法解析器,它能够将 Org 内容转换成抽象语法树(AST)。这个项目旨在让广受好评的 Org 模式的强大功能超越 Emacs 的限制,实现在任何支持 JavaScript 的环境中运行。 1. 项目目录结构及介绍 Orga.js 的项目结构精心设计,便于开发者理解和扩展。以下是...

gitblog_00036的博客 404

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Node.js — Run JavaScript Everywhere

Node.js是一个基于Google V8引擎的JavaScript运行时环境,允许开发者使用JavaScript进行服务器端编程。传统的JavaScript仅限于浏览器端,而Node.js将JavaScript带到了服务器端,使得开发者能够用同一种语言编写前端和后端代码。Node.js的非阻塞I/O模型使得它在高并发、数据密集型应用中表现出色。由于其高效、灵活的特性,Node.js成为了现代Web应用开发中的重要工具之一,广泛应用于企业级应用、实时通信、微服务架构等领域。

a1057477693的博客 512

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【亲测免费】 探索TIFF图像的无限可能:tiff.js开源项目推荐

在当今的数字化时代,图像处理技术已经成为各行各业不可或缺的一部分。特别是在医学影像、地理信息系统(GIS)、文档管理等领域,TIFF(Tagged Image File Format)格式的图像因其高保真度和支持多页特性而备受青睐。然而,如何在Web环境中高效地处理TIFF图像,一直是开发者面临的挑战。今天,我们将向您推荐一个强大的开源项目——`tiff.js`,它将为您解决这一难题。 ## 项...

gitblog_00122的博客 1223

16 个优秀的 Vue 开源项目

最初,该产品是作为编写技术文档的工具而创建的,但现在它是一个小型、紧凑、功能强大的headless CMS。它也是模块化的,所以你可以只使用你的apage所需要的模块简而言之,Nu xt 将您从构建和优化您的apage的工作中拯救出来Nuxt. js 具有模块化的架构,有50多个模块可供选择。这是特别有价值的,因为团队有一个清晰的路线图,所以你作为一个贡献者可以选择你可以做的任务。Vue是结合react和angular的最好的方法,并且拥有一个有凝聚力的,活跃的,能够应对开发问题的大型社区。

jjxp2011的专栏 2925

推荐开源项目:Pybars3,Python与JavaScript模板共享的桥梁

推荐开源项目:Pybars3,Python与JavaScript模板共享的桥梁 在Python的世界中寻找与JavaScript Handlebars.js相兼容的模板系统?那么【Pybars3】绝对值得你的青睐。作为一个从pybars项目分支并进行大量升级和扩展的工具,Pybars3致力于实现Python 3乃至Python 2与Handlebars.js模板语言的无缝对接,为前端与后端数据呈现...

gitblog_00084的博客 739

Day.js赞助计划:开源项目的可持续发展终极指南

Day.js作为一款轻量级的JavaScript日期时间处理库,以其2KB的极小体积和与Moment.js兼容的API赢得了全球开发者的青睐。这个开源项目的成功不仅源于其卓越的技术实现,更依赖于一个健康的赞助生态系统来确保长期可持续发展。💪 ## 为什么开源项目需要赞助支持? 开源项目如Day.js面临着独特的挑战:虽然被成千上万的项目使用,但维护工作需要持续投入时间和精力。赞助计划为开源项

gitblog_01408的博客 452

【JS&TS】JavaScript进阶Typescript秘籍:JS与TS区别?js和ts的语法上的区别?js开发者,如何更好的过渡为ts开发?

JavaScript 是一种灵活且广泛使用的编程语言,适用于各种Web开发场景。TypeScript 通过增加类型系统,为 JavaScript 提供了更多的工具和结构,特别适合大型项目和需要高度代码维护性的场景。随着前端工程化的发展,TypeScript 越来越受到开发者的青睐。

A-Itfuture的博客 2008

Web 版翻译者资料库

本项目是桌面版《翻译者资料库》的 Web 移植版,基于 Spring Boot 3.3、Thymeleaf、Bootstrap 5.3 与 MySQL 8.0 构建。它面向翻译写作提供资料、词汇、句库、文本工具、对照制作、查找、备份恢复及旧库迁移等功能,完整继承桌面版核心业务规则,支持一键启动与离线访问。

howard2005的专栏 180
上一篇: 再谈 Web 字体的现状与未来
下一篇: HTML5 File API:把文件从桌面拖放到 Web
comsharp
博客等级 码龄20年 1475粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值